1. 程式人生 > >24. 兩兩交換鏈表中的節點 leetcode

24. 兩兩交換鏈表中的節點 leetcode

而是 urn 解題思路 示例 思路 bsp pub pairs head

題目:

給定一個鏈表,兩兩交換其中相鄰的節點,並返回交換後的鏈表。

你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。

示例:

給定 1->2->3->4, 你應該返回 2->1->4->3.

解題思路:

設置三個指針,分別指向前後和當前節點。

class Solution {
    public ListNode swapPairs(ListNode head) {
        if(head==null)
            return head;
        ListNode preHead=new
ListNode(-1); preHead.next=head; ListNode left=preHead; ListNode mid=head; if(head.next==null)//如果只有一個節點,直接返回這個節點 return head; ListNode right=head.next; while(mid!=null&&mid.next!=null){ mid.next=right.next; right.next
=mid; left.next=right; left=mid; mid=left.next; if(mid!=null) right=mid.next; } return preHead.next; } }

24. 兩兩交換鏈表中的節點 leetcode