给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)
示例如下
输入:head = [1,2,3,4]
首先,说明一下本人刷LeetCode题目的一些想法,
思路
大体逻辑就是上体,重读的动作,现在我们整体梳理一下
最后看代码如何写
public static ListNode swapPairs(ListNode head){
ListNode dump = new ListNode(-1);
dump.next=head;
for(ListNode p=dump;p!=null&&p.next!=null;){
ListNode a=p.next;
ListNode b=p.next.next;
p.next=b;
a.next=b.next;
b.next=a;
p=a;
}
return dump.next;
}