1171 從鍊錶中刪去總和值為零的連續節點

2021-09-26 22:11:08 字數 1354 閱讀 1158

給你乙個鍊錶的頭節點 head,請你編寫**,反覆刪去鍊錶中由 總和 值為 0 的連續節點組成的序列,直到不存在這樣的序列為止。

刪除完畢後,請你返回最終結果鍊錶的頭節點。

你可以返回任何滿足題目要求的答案。

(注意,下面示例中的所有序列,都是對 listnode 物件序列化的表示。)

示例 1:

輸入:head = [1,2,3,-3,4]

輸出:[1,2,4]

示例 3:

輸入:head = [1,2,3,-3,-2]

輸出:[1]

把鍊錶存進陣列,用字典記錄字首和所在的座標,碰到相同的字首和就刪除這段陣列,反覆操作直到不能刪除陣列為止,最後生成鍊錶。

class solution:

def removezerosumsublists(self, head: listnode) -> listnode:

a =

while head:

a += [head.val]

head = head.next

flag = true

while flag:

t = 0

d =

flag = false

for i, v in enumerate(a) :

t += v

if t in d:

a = a[: d[t] + 1] + a[i + 1:]

flag = true

break

d[t] = i

ans = listnode(0)

t = ans

for i in a:

t.next = listnode(i)

t = t.next

return ans.next

直接在鍊錶上操作

class solution:

def removezerosumsublists(self, head: listnode) -> listnode:

ans = listnode(0)

ans.next = head

flag = true

while flag:

h = ans

d =

t = 0

flag = false

while h.next:

h = h.next

t += h.val

if t in d:

d[t].next = h.next

flag = true

break

d[t] = h

return ans.next

鍊錶刪去和為零的連續節點

鍊錶刪去和為零的連續節點 給你乙個鍊錶的頭節點 head,請你編寫 反覆刪去鍊錶中由 總和 值為 0 的連續節點組成的序列,直到不存在這樣的序列為止。刪除完畢後,請你返回最終結果鍊錶的頭節點。題解 要求刪除乙個連續節點和為0的組成的序列,一 設定乙個帶頭結點的鍊錶指向當前鍊錶 二 利用三指標的方式操...

從鍊錶中刪除總和值為0的連續節點

給你乙個鍊錶的頭節點 head,請你編寫 反覆刪去鍊錶中由 總和 值為 0 的連續節點組成的序列,直到不存在這樣的序列為止。刪除完畢後,請你返回最終結果鍊錶的頭節點。你可以返回任何滿足題目要求的答案。注意,下面示例中的所有序列,都是對 listnode 物件序列化的表示。示例 1 輸入 head 1...

從單向鍊錶中刪除指定值的節點

輸入乙個單向鍊錶和乙個節點的值,從單向鍊錶中刪除等於該值的節點,刪除後如果鍊錶中無節點則返回空指標。鍊錶結點定義如下 struct listnode 詳細描述 本題為考察鍊錶的插入和刪除知識。鍊錶的值不能重複 構造過程,例如 1 2 3 2 5 1 4 5 7 2 最後的鍊錶的順序為 2 7 3 1...