24. Swap Nodes in Pairs

题目

输入输出

Given 1->2->3->4, you should return the list as 2->1->4->3.

答案一

public class Solution {
    public ListNode swapPairs(ListNode head) {
        if ((head == null)||(head.next == null))
            return head;
        ListNode n = head.next;
        head.next = swapPairs(head.next.next);
        n.next = head;
        return n;
    }
}

答案二

public ListNode swapPairs(ListNode head) {
    ListNode dummy = new ListNode(0);
    dummy.next = head;
    ListNode current = dummy;
    while (current.next != null && current.next.next != null) {
        ListNode first = current.next;
        ListNode second = current.next.next;
        first.next = second.next;
        current.next = second;
        current.next.next = first;
        current = current.next.next;
    }
    return dummy.next;
}

图文详解

总结

递归:交换结点

参考

My accepted java code. used recursion My simple JAVA solution for share

results matching ""

    No results matching ""