swap node in pairs

思路

  • 创建一个工作节点,并将工作节点传给遍历节点
  • 用双指针同时指着需要交换的节点
  • 双指针由遍历指针得到
  • 遍历指针只负责遍历和初次赋值给双节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Solution{
public ListNode swapPairs(ListNode head){
if(head == null)
return null;
ListNode pHead = new ListNode(0);
pHead.next = head;
ListNode current = pHead;
while(current.next != null && current.next.next != null){
ListNode back = current.next;
ListNode pre = current.next.next;
back.next = pre.next;
pre.next = back;
current.next = pre;
current = current.next.next;
}
return pHead.next;
}
}