欢迎光临散文网 会员登陆 & 注册

删除排序链表中的重复元素(清晰)

2023-03-17 22:23 作者:仓鼠翞  | 我要投稿

class Solution {

public:

    ListNode* deleteDuplicates(ListNode* head) {

      //用哑结点处理

      //别忘了处理空

     if(head==nullptr||head->next==nullptr)

     {

         return head;

     }

     ListNode* ptr=new ListNode(0,head);

     ListNode* hair=ptr;

     while(ptr->next!=nullptr&&ptr->next->next!=nullptr)

     {

         //在外层控制两个后续节点指针情况真的很不错哎

         while(ptr->next->val==ptr->next->next->val)

         {

             int val=ptr->next->val;

             while(ptr->next->val==val)

             {

                 ptr->next=ptr->next->next;

                 //在内层就控制出现空节点或者联系head->1->1情况真的很不错

                 if(ptr->next==nullptr||(ptr->next->next==nullptr&&ptr->next->val!=val))

                 return hair->next;

             }

         }

        ptr=ptr->next;

     }

     //值得背一百遍

     return hair->next;

};

};


删除排序链表中的重复元素(清晰)的评论 (共 条)

分享到微博请遵守国家法律