/**
* 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 dumm = new ListNode();//创建哑节点
dumm.next = head;
ListNode temp = dumm;
while (temp.next != null && temp.next.next != null){//剩余的节点数只有一个或没有就结束循环
ListNode node1 = temp.next;
ListNode node2 = temp.next.next;//使用两个节点保存当前节点的下个节点和下下个节点
temp.next = node2;
node1.next = node2.next;
node2.next = node1;//交换节点
temp = node1;//更新节点
}
return dumm.next;
}
}
24. 两两交换链表中的节点
最新推荐文章于 2025-07-24 15:25:03 发布