原题网址:https://leetcode.cn/problems/swap-nodes-in-pairs/submissions/
关于交换的问题;https://blog.csdn.net/qq_34501351/article/details/126203341?spm=1001.2014.3001.5501 这题也是交换的问题;由于可以取到交换的目标节点;引入一个虚拟头结点;可以更好的得到目标节点的前一个节点;更容易;
public ListNode swapPairs(ListNode head) {
ListNode dummyHead = new ListNode(-1);
dummyHead.next = head;
ListNode cur = dummyHead;
ListNode node = head;
while(node != null) {
ListNode frist = node;
ListNode second = node.next;
// 只有一个数,不用换了,返回结果
if(second == null) {
return dummyHead.next;
}
frist.next = second.next;
second.next = frist;
cur.next = second;
cur = frist;
node = frist.next;
}
return dummyHead.next;
}