LeetCode热题100-两两交换链表中的节点

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

示例 1:

复制代码
输入:head = [1,2,3,4]
输出:[2,1,4,3]

思路

  1. 新建虚拟头结点,简化头部交换逻辑
  2. cur 遍历,每次处理一组两个节点
  3. 设三组指针:first 当前第一个、second 当前第二个、nextPair 下一组起点
  4. 完成交换:cur→second→first→下一组
  5. cur 跳到 first,继续循环
python 复制代码
class Solution:
    def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
        dummy = ListNode(0, head)
        cur = dummy

        while cur.next and cur.next.next:
            first = cur.next
            second = cur.next.next
            next_p = second.next

            cur.next = second
            second.next = first
            first.next = next_p

            cur = first
        
        return dummy.next
相关推荐
星轨初途18 分钟前
LeetCode 热题 100——day2 字母异位词分组
c++·算法·leetcode
happyprince30 分钟前
篇1:整体观 · bitsandbytes项目全貌解读
人工智能·算法
青梅橘子皮1 小时前
STL---map/set... “家族“详解(从使用到底层)(1)
数据结构·算法
让学习成为一种生活方式1 小时前
DNA 甲基化综述(模式、调控与功能)--Current Opinion in Plant Biology
算法
-森屿安年-1 小时前
647. 回文子串
c++·算法·动态规划
皓月斯语2 小时前
P5736 【深基7.例2】质数筛
c++·算法·题解
极序时代GEO品牌优化3 小时前
杭州极序时代|面向地域、设备与用户画像的动态GEO
人工智能·python·算法·极序时代geo
啦啦啦啦啦zzzz3 小时前
贪心算法和动态规划
c++·算法·贪心算法·动态规划
雪碧聊技术3 小时前
力扣 72. 编辑距离——动态规划经典例题
算法·leetcode·动态规划
happyprince4 小时前
篇3:bitsandbytes-深刻观-哲学与升华
人工智能·算法