其他分享
首页 > 其他分享> > 24. 两两交换链表中的节点

24. 两两交换链表中的节点

作者:互联网

24. 两两交换链表中的节点

24. 两两交换链表中的节点

方法一:递归

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

方法二:迭代

class Solution {
    public ListNode swapPairs(ListNode head) {
        ListNode dummyHead = new ListNode(0);
        dummyHead.next = head;
        ListNode temp = dummyHead;
        while (temp.next != null && temp.next.next != null) {
            ListNode node1 = temp.next;
            ListNode node2 = temp.next.next;
            temp.next = node2;
            node1.next = node2.next;
            node2.next = node1;
            temp = node1;
        }
        return dummyHead.next;
    }
}

标签:24,head,dummyHead,ListNode,temp,next,链表,节点
来源: https://blog.csdn.net/jia2018/article/details/110819908