对前缀和的应用还是要多熟悉下
var removeZeroSumSublists = function (head) {
const m = new Map();
const r = new ListNode(0);
r.next = head;
let prefix = 0, ptr = r;
while (ptr) {
prefix += ptr.val;
if (m.has(prefix)) {
ptr = m.get(prefix).next;
let tp = prefix + ptr.val;
while (tp != prefix) {
m.delete(tp);
ptr = ptr.next;
tp += ptr.val;
}
m.get(prefix).next = ptr.next;
} else {
m.set(prefix, ptr);
}
ptr = ptr.next;
}
return r.next;
};