leetcode 86. 分隔連結串列(連結串列)
阿新 • • 發佈:2021-01-04
技術標籤:leetcode連結串列演算法leetcodejava單鏈表
給你一個連結串列和一個特定值 x ,請你對連結串列進行分隔,使得所有小於 x 的節點都出現在大於或等於 x 的節點之前。
你應當保留兩個分割槽中每個節點的初始相對位置。
示例:
輸入:head = 1->4->3->2->5->2, x = 3
輸出:1->2->2->4->3->5
程式碼
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */
class Solution { public ListNode partition(ListNode head, int x) { ListNode left=new ListNode(0),l=left;//比x小的節點放置的連結串列 ListNode right=new ListNode(0),r=right;//大於等於x的節點放置的連結串列 while (head!=null) { ListNode next=head.next; if(head.val<x) { l.next=head; l=head; }else { r.next=head; r=head; } head.next=null; head=next; } l.next=right.next;//合併兩個連結串列 return left.next; } }