LeetCode 86 分隔鍊錶

2021-09-05 10:35:48 字數 517 閱讀 8772

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

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

題目理解起來比較拗口,並不是對鍊錶進行完整的排序,可以簡單的理解為把小於x的節點拿出來,把大於x的節點拿出來,拼接即可。通過新建兩個頭節點分別儲存大於x和小於x的節點,空間換取時間的理念只需要遍歷一遍鍊錶即可完成,思路上比在原煉表上進行移動的操作要清晰很多

listnode* solution::partition(listnode* head, int x)

/*把比x小和比x大的數分別按順序放入兩個新的鍊錶*/

while(head != null)

else

head = head->next;

}/*拼接兩個鍊錶*/

p1->next = pmore->next;

p2->next = null;

return pless->next;

}

Leetcode86 分隔鍊錶

題目描述 給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5演算法描述 此題有兩種解法,第一種就是將所有小於給定值的節點取...

leetcode86 分隔鍊錶

給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 把所有小於給定值的節點都移到前面,大於該值的節點順序不變。將所有小於給...

leetcode86分隔鍊錶

給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 新建兩個鍊錶,給定的特定值。對鍊錶分隔,將小於特定值的節點放在乙個鍊...