题目:
Given a linked list, swap every two adjacent nodes and return its head.
You may not modify the values in the list's nodes, only nodes itself may be changed.
Example:
Given 1->2->3->4
, you should return the list as 2->1->4->3.
public class SwapNodesPairs {
public ListNode swapPairs(ListNode head) {
if (head == null)
return head;
ListNode dummyHead = new ListNode(0);
dummyHead.next = head;
ListNode p = dummyHead;
while (p.next != null && p.next.next != null){
ListNode node1 = p.next;
ListNode node2 = p.next.next;
ListNode next = node2.next;
node2.next = node1;
node1.next = next;
p.next = node2;
p = node1;
}
return dummyHead.next;
}
}