删除链表中重复的结点

class Solution {
public:
    ListNode* deleteDuplication(ListNode* pHead)
    {
          ListNode* first = new ListNode(-1);
          first->next = pHead;

          ListNode* slow = first;
          ListNode* fast = pHead;

          while(fast!=nullptr&&fast->next!=nullptr)
          {
              if(fast->val == fast->next->val)
              {
                  int val = fast->val;
                  while(fast!=nullptr&&fast->val == val)
                  {
                      fast = fast->next;
                  }
                  slow->next = fast;
              }
              else
              {
                  slow = fast;
                  fast = fast->next;
              }
          }
        return first->next;
    }
};

你可能感兴趣的:(删除链表中重复的结点)