LeetCode:Remove Duplicates from Sorted List II

来源:互联网 发布:ubuntu安装qt 编辑:程序博客网 时间:2024/05/15 05:14

Remove Duplicates from Sorted List II




Total Accepted: 73972 Total Submissions: 272598 Difficulty: Medium

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.

Subscribe to see which companies asked this question

Hide Tags
 Linked List















c++ code:

/** * 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) return NULL;                // 加一个哑值作为“伪”头结点,方便处理头部有重复结点情况        ListNode dummy(0);        dummy.next = head;        ListNode *pre = &dummy;        ListNode *cur = head;                while(cur){                        while(cur->next && cur->val == cur->next->val) cur=cur->next;                        if(pre->next == cur) pre = pre->next; // 无重复结点            else pre->next = cur->next; // 有重复结点                        cur = cur->next;        }        return dummy.next;    }};


0 1
原创粉丝点击