做题总结 24. 两两交换链表中的节点

不会写

① 题目的理解

“两两交换其中相邻的节点”,并不是简单地交换数据,而是交换整个节点。
题目 “两两” 隐含的要考虑节点个数奇偶问题。

② 节点交换的实现

在这里插入图片描述
引入虚拟头结点dummyhead。
引入cur指针对链表进行操作,如果用dummyhead 操作,最后指针的头节点的地址没有保存。

按照图示顺序进行处理(这三条线的顺序打乱可以吗?)
【虚拟头节点指向2】cur.next = cur.next.next;
【2指向1】此时2是cur.next ,但是1已经不知道是什么了,原本1是cur.next,但上一步改变了cur.next的指向。所以在上一步之前需要一个变量temp存储1的地址。
【1指向3】3这个地址也需要保存

比较简单的做法就是 引入: first指第一个节点,second指第二个节点,temp,指second下一个,cur临时变量。

③ 代码(java)

class Solution {
   
    public ListNode swapPairs(ListNode head) {
   
        ListNode dummyhead = new ListNode(0,head);
        ListNode cur = dummyhead;

        ListNode first,second,temp;
        while(cur.next != null && cur.next.next != null) {
   
            //cur.next == null 偶数个
            //cur.next.next == null 奇数个
            first = cur.next;
            second = cur.next.next;
            temp = second.next;//可以等于null,不会出错

            cur.next = second;
            second.next = first;
            first.next = temp;

            cur = first;
        }

        return dummyhead.next;
    }
}

在这里插入图片描述

相关推荐

  1. leetcode24. 交换节点

    2023-12-14 01:02:01       49 阅读
  2. LC24. 交换节点

    2023-12-14 01:02:01       48 阅读
  3. LeetCode [24] 交换节点

    2023-12-14 01:02:01       44 阅读
  4. 【Leetcode】24. 交换节点

    2023-12-14 01:02:01       44 阅读
  5. LeetCode24.交换节点

    2023-12-14 01:02:01       41 阅读

最近更新

  1. TCP协议是安全的吗?

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

    2023-12-14 01:02:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-14 01:02:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-14 01:02:01       20 阅读

热门阅读

  1. 小程序跳转tabbar,tabbar页面不刷新

    2023-12-14 01:02:01       47 阅读
  2. 第22关 深入解析K8s中的RBAC角色访问控制策略

    2023-12-14 01:02:01       38 阅读
  3. fastapi 实践

    2023-12-14 01:02:01       40 阅读
  4. React系列-useEffect的使用

    2023-12-14 01:02:01       47 阅读
  5. 基础数据导入

    2023-12-14 01:02:01       29 阅读
  6. 【8.0.34-0 ubuntu 安装Mysql 后无法链接是什么情况】

    2023-12-14 01:02:01       38 阅读
  7. Deepsort目标跟踪算法

    2023-12-14 01:02:01       37 阅读
  8. charCodeAt() 方法

    2023-12-14 01:02:01       40 阅读
  9. 返回值的作用,用法

    2023-12-14 01:02:01       37 阅读
  10. springboot 获取路径

    2023-12-14 01:02:01       36 阅读