leetcode 86 分隔鍊錶

2021-09-18 07:51:46 字數 772 閱讀 4828

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

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

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

維護兩個鍊錶,乙個全部大等於於x,乙個全部小於x,遍歷原煉表時,根據條件加入

python

class solution:

def partition(self, head: listnode, x: int) -> listnode:

if not head or not head.next:

return head

l, r = listnode('#'), listnode('#')

tmp1, tmp2 = l, r

while head:

tmp, head = head, head.next

if tmp.val < x:

tmp1.next = tmp

tmp1 = tmp1.next

else:

tmp2.next = tmp

tmp2 = tmp2.next

tmp2.next = none

r = r.next

tmp1.next = r

return l.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 新建兩個鍊錶,給定的特定值。對鍊錶分隔,將小於特定值的節點放在乙個鍊...