Skip to content

Commit e3be66f

Browse files
added daily challenge
1 parent 9e7d102 commit e3be66f

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Definition for singly-linked list.
2+
# class ListNode:
3+
# def __init__(self, val=0, next=None):
4+
# self.val = val
5+
# self.next = next
6+
class Solution:
7+
def removeZeroSumSublists(self, head: Optional[ListNode]) -> Optional[ListNode]:
8+
dummy = ListNode(0)
9+
dummy.next = head
10+
prefixSumToNode = {}
11+
prefixSum = 0
12+
current = dummy
13+
while current:
14+
prefixSum += current.val
15+
if prefixSum in prefixSumToNode:
16+
prev = prefixSumToNode[prefixSum]
17+
toRemove = prev.next
18+
p = prefixSum + (toRemove.val if toRemove else 0)
19+
while p != prefixSum:
20+
del prefixSumToNode[p]
21+
toRemove = toRemove.next
22+
p += toRemove.val if toRemove else 0
23+
prev.next = current.next
24+
else:
25+
prefixSumToNode[prefixSum] = current
26+
current = current.next
27+
return dummy.next

0 commit comments

Comments
 (0)