Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given 1->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.
Solution 1:
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode dmy = new ListNode(0), pre = dmy;
dmy.next = head;
while (pre.next != null && pre.next.next != null) {
ListNode cur = pre.next;
ListNode suc = cur.next;
ListNode tmp = suc.next;
pre.next = suc;
suc.next = cur;
cur.next = tmp;
pre = cur;
}
return dmy.next;
}
}
标签:24,pre,Pairs,ListNode,cur,next,dmy,suc,Nodes From: https://www.cnblogs.com/MarkLeeBYR/p/16856718.html