当前位置: 首页 > news >正文

LeetCode 24 两两交换链表中的节点

​给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:

输入:head = [1,2,3,4]
输出:[2,1,4,3]

示例 2:

输入:head = []
输出:[]

示例 3:

输入:head = [1]
输出:[1]


提示:

链表中节点的数目在范围 [0, 100] 内
0 <= Node.val <= 100

Python代码:

class Solution:def swapPairs(self, head: ListNode) -> ListNode:# 创建虚拟头节点,方便处理头节点交换的情况dummy = ListNode(0)# 让虚拟头节点指向原链表的头节点dummy.next = head# cur 指针用于遍历链表,初始指向虚拟头节点cur = dummy# 循环条件:确保当前 cur 节点后面至少有两个节点可以进行交换while cur.next and cur.next.next:# first 指向 cur 的下一个节点first = cur.next# second 指向 cur 的下下个节点second = cur.next.next# 将 cur 的 next 指针指向 second,完成第一步交换cur.next = second# 将 first 的 next 指针指向 second 的下一个节点,调整链表连接first.next = second.next# 将 second 的 next 指针指向 first,完成两个节点的交换second.next = first# 更新 cur 指针,指向下一组待交换节点的前一个节点cur = first# 返回虚拟头节点的下一个节点,即交换后的链表头节点return dummy.next

    http://www.xdnf.cn/news/178993.html

    相关文章:

  • 半导体行业如何开展风险管理?有没有半导体风控案例参考?
  • 反序列化漏洞2
  • 贪吃蛇游戏demo
  • 计网二。。
  • css响应式布局设置子元素高度和宽度一样
  • Maven项目细节
  • re题(48)BUUCTF-[网鼎杯 2020 青龙组]singal
  • vue项目页面适配
  • Java学习--HashMap
  • 科技打头阵,创新赢未来——中科视界携千眼狼超高速摄像机亮相第三届科交会
  • 【HPC存储性能测试】02-ior带宽性能测试
  • acwing532. 货币系统
  • 【操作系统原理07】输入/输出系统
  • 常用的多传感器数据融合方法
  • 安卓屏播放语音失败,报错TextToSpeech: speak failed: not bound to TTS engine
  • risc-V学习日记(4):RV32I指令集
  • 开关电源实战(六)ADDC反激电源
  • 说一下Drop与delete区别
  • 在java中实现protobuf自定义协议
  • 通过ThreadLocal存储登录用户信息
  • LeetCode每日一题4.27
  • 【HPC存储性能测试】01-OpenMPI部署
  • 深入理解指针(5)
  • 【Leetcode 每日一题】3392. 统计符合条件长度为 3 的子数组数目
  • lobechat调用ollama模型,服务连接失败
  • UE5 NDisplay 单主机打包运行
  • SaaS方兴未艾,快速稳定的访问与全面的安全防护成关键
  • 典籍查询界面增加我的收藏查询功能
  • AI 数据中心 vs 传统数据中心:从硬件架构到网络设计的全面进化
  • 0基础 | Proteus | 中断 | 点阵