題幹:
給定乙個鍊錶和乙個特定值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演算法描述 此題有兩種解法,第一種就是將所有小於給定值的節點取...