leetcode.24. 两两交换链表中的节点

题目

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

思路

创建虚拟头节点,画图,确认步骤。
1221

实现

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode swapPairs(ListNode head) {
       
       if(head == null || head.next == null) return head;
      
       ListNode dummy = new ListNode(0);
       ListNode p = dummy;
       dummy.next = head;
       ListNode i = head;
       ListNode j = head.next;

       // i 是第一个节点 j是第二个节点
      
      //一轮下来 i!=null 且 j != null 就可以进行循环
       while(i !=null && j != null){
         
         ListNode temp = j.next;


         //实际的交换步骤
         p.next = j;
         j.next = i;
         i.next = temp;

          
         p = i;
         i = temp;
         //这里是为了防止下面出现NPE。
         //当移动指针准备下一轮循环的时候,发现第一个已经是null,可以直接返回退出循环了
         if(i == null){
            continue;
         }
         j = temp.next;
       }

       return dummy.next;
    }
}

相关推荐

  1. leetcode24. 交换节点

    2024-04-06 08:06:11       49 阅读
  2. LeetCode [24] 交换节点

    2024-04-06 08:06:11       44 阅读
  3. Leetcode24. 交换节点

    2024-04-06 08:06:11       44 阅读
  4. LeetCode24.交换节点

    2024-04-06 08:06:11       40 阅读

最近更新

  1. TCP协议是安全的吗?

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

    2024-04-06 08:06:11       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-06 08:06:11       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-06 08:06:11       20 阅读

热门阅读

  1. centos7安装k8s

    2024-04-06 08:06:11       15 阅读
  2. Web Form

    2024-04-06 08:06:11       15 阅读
  3. spa、vue、elementUi

    2024-04-06 08:06:11       13 阅读
  4. Visual Studio 2022 配置及设置 One Dark Pro

    2024-04-06 08:06:11       11 阅读
  5. WebKit结构简介

    2024-04-06 08:06:11       17 阅读
  6. 自然语言处理——信息熵

    2024-04-06 08:06:11       13 阅读
  7. 设计模式(21):备忘录模式

    2024-04-06 08:06:11       17 阅读
  8. 鸿蒙系统前端:构建智能互联新时代的界面之美

    2024-04-06 08:06:11       18 阅读
  9. 数据库逆向生成文件之数据库连接报错解决方案

    2024-04-06 08:06:11       14 阅读
  10. Docker安装Memcached

    2024-04-06 08:06:11       13 阅读
  11. 手写一个民用Tomcat (01)

    2024-04-06 08:06:11       12 阅读
  12. 4月5日排序算法总结(1)

    2024-04-06 08:06:11       18 阅读