力扣 | 24. 两两交换链表中的节点

两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
输入:head = 1->2->3->4->5->NULL
输出:2->1->4->3->5->NULL

在这里插入图片描述

 public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null) return head; //确保了以下代码至少是两个节点

        ListNode dummyNode = new ListNode(-1);
        dummyNode.next = head;

        ListNode prev = dummyNode;
        ListNode first = head;
        ListNode second = head.next;
        while (second != null) {//确保两个节交换点中只有first这一个节点就不交换
            ListNode next = second.next;
            prev.next = second;
            second.next = first;//second是两个需要交换节点的最后面的那个节点
            first.next = next;

            prev = first;//prev总是总是两个
            first = next;
            if (first == null) break;
            second = first.next;
        }
        return dummyNode.next;
    }

相关推荐

  1. 24-交换节点

    2024-04-15 06:32:02       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-15 06:32:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-15 06:32:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-15 06:32:02       87 阅读
  4. Python语言-面向对象

    2024-04-15 06:32:02       96 阅读

热门阅读

  1. python课本基础练习——列表推导式

    2024-04-15 06:32:02       36 阅读
  2. 2024/4/12 网络编程day2

    2024-04-15 06:32:02       38 阅读
  3. 初识DOM

    初识DOM

    2024-04-15 06:32:02      37 阅读
  4. 双向冒泡算法(C语言版)

    2024-04-15 06:32:02       39 阅读
  5. Android之图片压缩几种方式

    2024-04-15 06:32:02       38 阅读
  6. Android之启动优化

    2024-04-15 06:32:02       39 阅读
  7. 链表linked list: 将新节点链接到链表的末尾

    2024-04-15 06:32:02       41 阅读