Skip to content

Commit 497c705

Browse files
authored
Create 1171-remove-zero-sum-consecutive-nodes-from-linked-list.js
1 parent c0741a9 commit 497c705

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* function ListNode(val) {
4+
* this.val = val;
5+
* this.next = null;
6+
* }
7+
*/
8+
/**
9+
* @param {ListNode} head
10+
* @return {ListNode}
11+
*/
12+
const removeZeroSumSublists = function(head) {
13+
let dummy = new ListNode(0), cur = dummy;
14+
dummy.next = head;
15+
let prefix = 0;
16+
let m = new Map();
17+
while (cur != null) {
18+
prefix += cur.val;
19+
if (m.has(prefix)) {
20+
cur = m.get(prefix).next;
21+
let p = prefix + cur.val;
22+
while (p != prefix) {
23+
m.delete(p);
24+
cur = cur.next;
25+
p += cur.val;
26+
}
27+
m.get(prefix).next = cur.next;
28+
} else {
29+
m.set(prefix, cur);
30+
}
31+
cur = cur.next;
32+
}
33+
return dummy.next;
34+
};

0 commit comments

Comments
 (0)