LeetCode86 分割鍊錶 2018 11 8

2021-08-31 06:49:45 字數 837 閱讀 1361

題幹:

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

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

示例:

輸入:head = 1->4->3->2->5->2, x = 3輸出:1->2->2->4->3->5
演算法思想:將小於x的元素單獨拿出來,最後分成兩個鍊錶,乙個全是小於x的元素,還有乙個全是大於x的元素,再將兩個鍊錶連線即可

class solution:

def partition(self, head, x):

""":type head: listnode

:type x: int

:rtype: listnode

"""if head == none or head.next == none:

return head

dummy, small = listnode(0), listnode(0)

dummy.next, q, pre, p = head, small, dummy, head

while p:

if p.val < x:

pre.next = p.next

q.next = p

q = q.next

p = pre.next

else:

pre, p = pre.next, p.next

q.next = dummy.next

return small.next

分割鍊錶leetcode86

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

86 分割鍊錶

給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 思路 用兩個鍊錶分別存小於x和大於等於x的元素,然後連線兩個鍊錶。de...

Leetcode86 分隔鍊錶

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