給你乙個鍊錶和乙個特定值 x ,請你對鍊錶進行分隔,使得所有小於 x 的節點都出現在大於或等於 x 的節點之前。
你應當保留兩個分割槽中每個節點的初始相對位置。
示例:輸入:head = 1->4->3->2->5->2, x = 3
輸出:1->2->2->4->3->5
思路清晰,只需要遍歷一次鍊錶,遇到比 x 小的節點加到單獨一邊,大於等於 x 的節點加到另外一邊,最後小的那邊的尾節點的 next 指向大的部分的頭節點即可
class
solution
listnode smallhead =
newlistnode(-
1); listnode small = smallhead;
listnode largehead =
newlistnode(-
1); listnode large = largehead;
while
(head != null)
else
head = head.next;
} large.next = null;
// 為了斷開鍊錶可能存在的環
small.next = largehead.next;
return smallhead.next;
}}
力扣演算法題 086分隔鍊錶
給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 1 include 000庫函式.h 2 3struct listno...
leetcode 鍊錶 86 分隔鍊錶
給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3輸出 1 2 2 4 3 5大數結點指標總是指向後續結點,遇到小數結點,則前移到小數結點的尾結點 de...
Leetcode86 分隔鍊錶
題目描述 給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5演算法描述 此題有兩種解法,第一種就是將所有小於給定值的節點取...