Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given1->2->3->4
, you should return the list as 2->1->4->3
.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var swapPairs = function(head) {
var node = new ListNode(-1);
var temp = node;
node.next = head;
while(temp.next&&temp.next.next !== null){
var m = temp.next;
var n = temp.next.next;
temp.next = n;
m.next = n.next;
n.next = m;
temp = m;
}
return node.next;
};