給定乙個鍊錶和乙個特定值 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和...