24. Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.
You may not modify the values in the list’s nodes, only nodes itself may be changed.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode dummy = new ListNode(42);
dummy.next = head;
ListNode c = dummy;
while (c.next != null && c.next.next != null) {
ListNode a = c.next;
ListNode b = c.next.next;
// swaps nodes in pair
c.next = b;
a.next = b.next;
b.next = a;
c = c.next.next;
}
return dummy.next;
}
}