24. Swap Nodes in Pairs

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;

    }

}

posted @ 2019-04-09 16:21  MarkLeeBYR  阅读(86)  评论(0)    收藏  举报