[LeetCode] 82. Remove Duplicates from Sorted List II

来源:互联网 发布:媒体的作用 知乎 编辑:程序博客网 时间:2024/06/05 21:00

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.

class Solution {public:    ListNode* deleteDuplicates(ListNode* head) {        if (head == nullptr || head->next == nullptr) return head;        int val = head->val;        ListNode *p = head->next;        if (val != p->val) {            head->next = deleteDuplicates(p);            return head;        } else {            delete head;            while (p && p->val == val) {                ListNode *tmp = p;                p = p->next;                delete tmp;            }            return deleteDuplicates(p);        }    }};

这里写图片描述这里写图片描述

原创粉丝点击