LeetCode24.两两交换链表中的节点

力扣题目链接

思路:由于头结点也会改变,为保证头结点和其余结点操作一致。对于头结点也会改变的做题技巧是创建一个虚拟头结点。让p指向虚拟头结点,循环的条件是:p的下一个结点不为空并且p的下下个结点也不为空,说明p后面有两个不空的节点进行交换。令a=p.next;b=a.next交换步骤:①p.next = b ②a.next = b.next ③b.next = a; 注意顺序不能反。 最后让p = a;进行下一轮循环。

代码

class Solution {
    public ListNode swapPairs(ListNode head) {
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode p = dummy;
        while (p.next != null && p.next.next != null) {
            ListNode a = p.next;
            ListNode b = a.next;
            p.next = b;
            a.next = b.next;
            b.next = a;
            p = a;
        }
        return dummy.next;
        ```
        

相关推荐

  1. leetcode24. 交换节点

    2024-01-21 04:46:02       49 阅读
  2. LeetCode [24] 交换节点

    2024-01-21 04:46:02       44 阅读
  3. Leetcode24. 交换节点

    2024-01-21 04:46:02       44 阅读
  4. LeetCode24.交换节点

    2024-01-21 04:46:02       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-21 04:46:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-21 04:46:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-21 04:46:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-21 04:46:02       20 阅读

热门阅读

  1. LeetCode解法汇总2182. 构造限制重复的字符串

    2024-01-21 04:46:02       41 阅读
  2. 输出一个水仙花数

    2024-01-21 04:46:02       37 阅读
  3. SpringCloud Stream配置详解

    2024-01-21 04:46:02       33 阅读
  4. Spring中@Async的使用技巧

    2024-01-21 04:46:02       42 阅读
  5. 洛谷 P8218 【深进1.例1】求区间和 c语言

    2024-01-21 04:46:02       24 阅读
  6. 2024 前端高频面试题之 浏览器原理 篇

    2024-01-21 04:46:02       41 阅读
  7. c++ STL

    2024-01-21 04:46:02       34 阅读
  8. C++从零开始的打怪升级之路(day16)

    2024-01-21 04:46:02       36 阅读
  9. SpringBoot-03

    2024-01-21 04:46:02       37 阅读
  10. C++中的new/delete

    2024-01-21 04:46:02       40 阅读