leetcodeSolution 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; 6 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; 12 13 int v = crnt + c->val; 14 while (v != crnt) { 15 um.erase(v); 16 c = c->next; 17 v += c->val; 18 } 19 20 p->next = c->next; 21 } else 22 um[crnt] = c; 23 } 24 25 return dummy.next; 26 } 27 };