题解 | #删除有序链表中重复的元素-II#
删除有序链表中重复的元素-II
https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: ListNode* deleteDuplicates(ListNode* head) { auto slow = head, fast = head; ListNode* newlist = nullptr; ListNode* curr = nullptr; while (fast) { int cnt = 0; while (fast && fast->val == slow->val) { cnt++; fast = fast->next; } cout << cnt << endl; if (cnt == 1) { if (newlist == nullptr) { newlist = slow; curr = slow; } else { curr->next = slow; curr = curr->next; } } slow->next = fast; slow = slow->next; } if (curr == nullptr) return nullptr; else { curr->next = nullptr; return newlist; } } };