删除链表中的重复节点(重复的保留一个)

ListNode* deleteDuplication(ListNode* pHead)
{
        if(pHead==nullptr)
            return nullptr;
        auto p=pHead,pn=p->next,pnn=p;
        while(p!=nullptr&&pn!=nullptr)
        {
            pnn=pn->next;
            if((p->val)==(pn->val))
            {
                p->next=pnn;
                delete pn;
                pn=pnn;
            }
            else
            {
                p=pn;
                pn=pnn;
            }
        }
        return pHead;
}

你可能感兴趣的:(C++,算法)