题解 | #删除有序链表中重复的元素-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,这也挺烦的)
查看21道真题和解析
传音控股公司福利 330人发布