Skip to content

Commit e4efaa4

Browse files
authored
Create remove-zero-sum-consecutive-nodes-from-linked-list.py
1 parent 8aa4612 commit e4efaa4

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Time: O(n)
2+
# Space: O(n)
3+
4+
import collections
5+
6+
7+
# Definition for singly-linked list.
8+
class ListNode(object):
9+
def __init__(self, x):
10+
self.val = x
11+
self.next = None
12+
13+
14+
class Solution(object):
15+
def removeZeroSumSublists(self, head):
16+
"""
17+
:type head: ListNode
18+
:rtype: ListNode
19+
"""
20+
curr = dummy = ListNode(0)
21+
dummy.next = head
22+
prefix = 0
23+
lookup = collections.OrderedDict()
24+
while curr:
25+
prefix += curr.val
26+
node = lookup.get(prefix, curr)
27+
while prefix in lookup:
28+
lookup.popitem()
29+
lookup[prefix] = node
30+
node.next = curr.next
31+
curr = curr.next
32+
return dummy.next

0 commit comments

Comments
 (0)