1. 程式人生 > 其它 >leetcode 86. 分隔連結串列(連結串列)

leetcode 86. 分隔連結串列(連結串列)

技術標籤: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; } }