leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

1171.cpp (695B)


0 class Solution {
1 public:
2 ListNode *removeZeroSumSublists(ListNode *head) const {
3 unordered_map<int, ListNode *> um;
4 ListNode dummy(0, head);
5 int crnt = 0;
7 for (ListNode *c = &dummy; c; c = c->next) {
8 crnt += c->val;
9 if (um.count(crnt)) {
10 ListNode *p = um[crnt];
11 c = p->next;
13 int v = crnt + c->val;
14 while (v != crnt) {
15 um.erase(v);
16 c = c->next;
17 v += c->val;
18 }
20 p->next = c->next;
21 } else
22 um[crnt] = c;
23 }
25 return dummy.next;
26 }
27 };