Given a linked list, swap every two adjacent nodes and return its head.
Example:
Given1->2->3->4->5->6
, you should return the list as2->1->4->3->6->5
.
Note:
- Your algorithm should use only constant extra space.
- You may not modify the values in the list's nodes, only nodes itself may be changed.
code:
public ListNode swapPairs(ListNode head) {
if(head==null||head.next==null)
return head;
ListNode result=head.next;
ListNode node=head.next;
head.next=node.next;
node.next=head;
while(head.next!=null){
node=head.next;
if(node.next!=null){
head.next=node.next;
node.next=head.next.next;
head.next.next=node;
head=node;
}else{
break;
}
}
return result;
}