【leetcode】82. Remove Duplicates from Sorted List II

来源:互联网 发布:maomiav最新网页域名 编辑:程序博客网 时间:2024/06/03 22:39

新建立一个链表result,用来保存结果。在遍历链表过程中,利用额外变量count,判断当前值是否唯一。唯一则加入到result中。

需要同时更新pre和cur指针。

/** *  @author         johnsondu *  @time           11:11 12th Oct 2015 *  @type           remove nodes from list *  @status         Accepted *  @problem        Remove Duplicates from Sorted List II *  @url            https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/ *//** * 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 == NULL) return head;        ListNode* result = new ListNode(0);        ListNode* frt = result;        ListNode* pre = head;        ListNode* cur = head->next;        int val = pre->val;        while(1) {            int count = 1;            while(cur != NULL && val == cur->val) {                count ++;                cur = cur->next;            }            if(count == 1) {                result->next = pre;                result = result->next;            }            if(cur == NULL) {                result->next = cur;                break;            }            val = cur->val;            pre = cur;            cur = cur->next;        }        return frt->next;    }};


0 0
原创粉丝点击