题解 | #删除有序链表中重复的元素-II#
删除有序链表中重复的元素-II
https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024
class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(head==nullptr||head->next==nullptr) return head; auto a=head; auto c=new ListNode(-1); auto b=c; int i=0; while(a->next!=nullptr) { if(a->val==a->next->val&&a->next!=nullptr) { while(a->val==a->next->val&&a->next!=nullptr) { a=a->next; } if(a->next!=nullptr) {a=a->next;i--;} i++; } else { c->next=a; c=c->next; a=a->next; i=0; } } if(i==0) { c->next=a; c=c->next; } c->next=nullptr; return b->next; } };
由于不会用纯指针方法来解决,思考了一下还是修改了普通思路,搞到了挺久的。主要是用例{1,1}和{1,1,2}的思考那部分,让我有点焦灼。(最后要返回nullptr,这也挺烦的)