leetcode-82-删除排序链表中的重复元素 II

leetcode-82-删除排序链表中的重复元素 II

//不加伪头结点可能可以更快,注意new了就要删,指针不指了就要删

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        ListNode* temp = new ListNode(0);
        temp->next = head;
        ListNode* curNode = temp;
        while (curNode->next != NULL) {
            ListNode* next = curNode->next;
            if (next->next != NULL && next->val == next->next->val) {
                while (next->next != NULL && next->val == next->next->val) {
                    ListNode* del = next;
                    next = next->next;
                    delete del;
                }
                curNode->next = next->next;
                delete next;
            }
            else curNode = next;
        }
        ListNode* newhead = temp->next;
        delete temp;
        return newhead;
    }
};