链表--两两交换链表中的节点

33 阅读1分钟

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

示例:输入: head = [1, 2, 3, 4] 输出: [2,1,4,3]

代码:

public class SwapNode {
    public static Node swapNode(Node head) {
        Node dummyHead = new Node(-1);
        dummyHead.next = head;
        Node cur = head;
        while(cur.next != null && cur.next.next != null) {
            Node tmp1 = cur.next;
            Node tmp2 = cur.next.next.next;

            cur.next = cur.next.next;
            cur.next.next = tmp1;
            cur.next.next.next = tmp2;

            cur = cur.next.next;
        }
        return dummyHead.next;
    }
}