Description
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.
Example
1
| Given 1->2->3->4, you should return the list as 2->1->4->3.
|
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
class Solution { public ListNode swapPairs(ListNode head) { if (head == null || head.next == null) return head; ListNode dummy = new ListNode(0); dummy.next = head; ListNode cur = dummy; while(cur.next != null && cur.next.next != null){ ListNode first = cur.next; ListNode second = cur.next.next; first.next = second.next; cur.next = second; second.next = first; cur = cur.next.next; } return dummy.next; } }
|