class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
//维护一个prep节点,保证prep始终与下一个没有重复的节点连接在一起
ListNode *prep=nullptr;
ListNode *curp=head;
while(curp)
{
bool isneeddelete=false;
ListNode *nextp=curp->next;
if(nextp!=nullptr&&curp->val==nextp->val) isneeddelete=true;
if(!isneeddelete)
{
prep=curp;
curp=curp->next;
}
else{
int val=curp->val;
ListNode *nodetobedel=curp;
while(nodetobedel!=nullptr&&nodetobedel->val==val)
{
nextp=nodetobedel->next;
delete nodetobedel;
nodetobedel=nullptr;
nodetobedel=nextp;
}
if(prep==nullptr) head=nextp;
else prep->next=nextp;
curp=nextp;
}
}
return head;
}
};
82. 删除排序链表中的重复元素 II
最新推荐文章于 2025-03-24 18:51:20 发布
