力扣——兩兩交換鏈表中的節點
阿新 • • 發佈:2019-03-02
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; } }
力扣——兩兩交換鏈表中的節點