1. 程式人生 > >力扣——兩兩交換鏈表中的節點

力扣——兩兩交換鏈表中的節點

pub init color 只有一個 == amp 鏈表 linked swa

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

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

示例:

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

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
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; } }

力扣——兩兩交換鏈表中的節點