ListNode* deleteDuplication(ListNode* pHead)
{
if (pHead == NULL || pHead->next == NULL)
{
return pHead;
}
ListNode dummy(0);//虚拟头结点
dummy.next = pHead;
ListNode * pre(&dummy);
ListNode * pleft, * pright;
while (pre->next!=NULL)
{
pleft = pre->next;
pright = pleft;
while (pright!=NULL && pright->val ==pleft->val)
{
pright = pright->next;
}
if (pleft->next == pright)
{
pre = pleft;
}
else
{
pre->next = pright;
while (pleft!=pright)
{
auto tmp = pleft->next;
delete pleft;
pleft = tmp;
}
}
}
return dummy.next;
}
【剑指offer】题57:删除链表中的重复的结点
最新推荐文章于 2024-08-16 21:49:25 发布