leetcode86分隔鍊錶

2021-09-03 02:47:39 字數 935 閱讀 7664

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

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

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

輸出: 1->2->2->4->3->5

新建兩個鍊錶,給定的特定值。對鍊錶分隔,將小於特定值的節點放在乙個鍊錶,大於特定值的節點放在另乙個鍊錶,小於特定值的鍊錶放在大於特定鍊錶之前。

# definition for singly-linked list.

# class listnode(object):

# def __init__(self, x):

# self.val = x

# self.next = none

class solution(object):

def partition(self, head, x):

""":type head: listnode

:type x: int

:rtype: listnode

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

return head

q1= head1 = listnode(0)

q2 = head2 = listnode(0)

q = head

while q:

if q.valq1.next = q

q1 = q1.next

else:

q2.next = q

q2 = q2.next

q= q.next

q1.next=head2.next

q2.next = none

return head1.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 把所有小於給定值的節點都移到前面,大於該值的節點順序不變。將所有小於給...

LeetCode 86 分隔鍊錶

給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。題目理解起來比較拗口,並不是對鍊錶進行完整的排序,可以簡單的理解為把小於x的節點拿出來,把大於x的節點拿出來,拼接即可。通過新建兩個頭節點分別儲存大於x和...