leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
2487.cpp (658B)
0 class Solution {
1 ListNode *rev(ListNode *list) {
2 ListNode *prev = nullptr, *next;
3 while (list) {
4 next = list->next;
5 list->next = prev;
6 prev = list;
7 list = next;
8 }
9 return prev;
10 }
12 public:
13 ListNode *removeNodes(ListNode *head) {
14 ListNode dummy(-1, rev(head));
15 int maxi = -1;
16 for (ListNode *crnt = &dummy; crnt && crnt->next; crnt = crnt->next) {
17 maxi = max(maxi, crnt->val);
18 while (crnt->next && crnt->next->val < maxi)
19 crnt->next = crnt->next->next;
20 }
21 return rev(dummy.next);
22 }
23 };