演算法 鍊錶 鍊錶分隔(鍊錶劃分)

2021-10-04 21:59:14 字數 691 閱讀 4646

給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。

你應當保留兩個分割槽中每個節點的初始相對位置。

示例:輸入: head = 1->4->3->2->5->2, x = 3

輸出: 1->2->2->4->3->5

兩個臨時頭結點和尾節點,組成兩個鍊錶,分別存放較小和較大節點

完成後拼接在一起即可

public listnode partition

(listnode head,

int x)

listnode lhead =

newlistnode(0

);listnode ltail = lhead;

listnode rhead =

newlistnode(0

);listnode rtail = rhead;

while

(head != null)

else

head = head.next;

}// 注意:將較大的鍊錶的尾節點.next置空,否則造成鍊錶錯誤迴圈

rtail.next = null;

ltail.next = rhead.next;

return lhead.next;

}

o(n)

o(1)

分隔鍊錶(鍊錶 LeetCode)

題目鏈結 給你乙個鍊錶和乙個特定值 x 請你對鍊錶進行分隔,使得所有小於 x 的節點都出現在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5維護兩個鍊錶,乙個鍊錶儲存比x小的結點,另乙個鍊錶儲...

鍊錶 鍊錶劃分 簡單

描述 給定乙個單鏈表和數值x,劃分鍊錶使得所有小於x的節點排在大於等於x的節點之前。你應該保留兩部分內煉表節點原有的相對順序。您在真實的面試中是否遇到過這個題?樣例給定鍊錶 1 4 3 2 5 2 null,並且 x 3 返回 1 2 2 4 3 5 null 題目鏈結 分析 方法一 將所有小於給定...

LeetCode 分隔鍊錶

給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 思路分析 本題主要就是一句節點的val的大小進行分類,小於x的放一邊...