leetcode刷題python之分割鍊錶

2021-09-29 14:04:05 字數 1005 閱讀 6439

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

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

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

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

思路:將小於x的值放到左側,大於等於x的值放到右側鍊錶,再把兩個鍊錶拼接到一起。right.next = none # 必須有這句話,如果沒有這句話切斷末尾的話,right很有可能會指向head中的某個值,這個值又會以原來head中的順序指向right,形成死迴圈

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class solution:

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

left = listnode(0)

right = listnode(0)

res = left

mid = right

while head:

if head.val < x:

left.next = head

left = left.next

else:

right.next = head

right = right.next

head = head.next

left.next = mid.next

right.next = none # 必須有這句話,如果沒有這句話切斷末尾的話,right很有可能會指向head中的某個值,這個值又會以原來head中的順序指向right,形成死迴圈

return res.next

Leetcode鍊錶刷題 pytho語言

為方便後續的使用查詢,記錄一下 函式包括 找到兩個單鏈表相交的起始節點 反轉單鏈表 刪除鍊錶中等於給定值 val 的所有節點 definition for singly linked list.class listnode object def init self,x self.val x self...

開始刷題LeetCode

今天決定開始刷題,每天至少一題,如果題目確實沒有解決出來沒有關係,但是要保證每天至少接觸了一道新的題目!一定要堅持下去,現在是個菜鳥可能會感覺有點難度,堅持下去,總有一天會好的!今天是第一天,做的第乙個題目 reverse words in a string given an input strin...

leetcode刷題歷程

難度 簡單 題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 ...