class Solution {
public ListNode reverse(ListNode a,ListNode b){
a.next = b.next;
b.next = null;
b.next = a;
return b;
}
public ListNode swapPairs(ListNode head) {
ListNode t = new ListNode(0);
ListNode tmp = head;
int len=0;
while(tmp!=null){
len++;
tmp=tmp.next;
}
if(head==null){
return null;
}
if(len==1){
return head;
}
ListNode prev = t;
len /= 2;
for(int i=1;i<=len;i++){
tmp = reverse(head,head.next);
prev.next = tmp;
prev = tmp.next;
if(head.next!=null)
head = head.next;
}
return t.next;
}
}