递归删除- -

 

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode *deleteDuplicates(ListNode *head) {
        if(head == nullptr || head -> next == nullptr) return head;
        ListNode* next = head -> next;
        ListNode* tmp;
        if(head->val == next->val) {
            while(next && next->val == head -> val) {
                tmp = next;
                next = next->next;
                delete tmp;
            }
            delete head;
            return deleteDuplicates(next);
        } else {
            head -> next = deleteDuplicates(next);
            return head;
        }
    }
};

 

相关文章:

  • 2021-06-23
  • 2022-12-23
  • 2021-11-19
  • 2022-12-23
  • 2022-12-23
  • 2021-07-08
  • 2021-08-29
  • 2021-11-28
猜你喜欢
  • 2021-12-15
  • 2022-03-02
  • 2021-12-07
  • 2021-08-06
  • 2021-09-30
相关资源
相似解决方案