1. 程式人生 > >【LeetCode】【24】【Swap Nodes in Pairs】

【LeetCode】【24】【Swap Nodes in Pairs】

題目:Given a linked list, swap every two adjacent nodes and return its head.
解題思路:這個題還是比較容易的吧,兩個一組把後面的插入到前面的連結串列中。注意不要斷鏈。
程式碼:

class ListNode {
    int val;
    ListNode next;
    ListNode(int x) {
        val = x;
    }
}
    public ListNode swapPairs(ListNode head) {
        if(head == null)return null;
        ListNode n1 = head,n2 = head.next;
        ListNode dummyNode = new ListNode(-1);
        dummyNode.next = head;
        ListNode pre = dummyNode;
        ListNode t1;
        while (n1 != null && n2 != null){
            t1 = n2.next;

            n1.next = n2.next;
            pre.next = n2;
            n2.next = n1;

            pre = n1;
            n1 = t1;
            if(t1!=null)n2 = t1.next;

        }
        return dummyNode.next;
    }