package problems.easy;
import problems.utils.ListNode;
/**
* Created by sherxon on 1/7/17.
*/
public class SwapNodesInPair {
public ListNode swapPairs(ListNode head) {
ListNode odd = new ListNode(0);
ListNode even = new ListNode(0);
ListNode oddP = odd;
ListNode evenP = even;
ListNode x = head;
while (x != null) {
oddP.next = x;
oddP = oddP.next;
x = x.next;
if (x != null) {
evenP.next = x;
evenP = evenP.next;
x = x.next;
}
}
oddP.next = null;
evenP.next = null;
ListNode r = new ListNode(0);
x = r;
odd = odd.next;
even = even.next;
while (odd != null || even != null) {
if (even != null) {
x.next = even;
even = even.next;
x = x.next;
}
if (odd != null) {
x.next = odd;
odd = odd.next;
x = x.next;
}
}
return r.next;
}
}