給你乙個鍊錶的頭節點 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...