LeetCode 82. Remove Duplicates from Sorted List II

来源:互联网 发布:r语言编程艺术 pdf 编辑:程序博客网 时间:2024/03/28 23:30

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

/** * 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 newHead(0);        ListNode* pre_pre = &newHead;        ListNode* pre = head;        ListNode* cur = head->next;        bool flag_same = false;        while(cur != NULL) {            if (cur->val != pre->val) {                if (flag_same == false) {                    pre_pre->next = pre;                    pre_pre = pre;                }                else {                    flag_same = false;                }                pre = cur;            }            else {                flag_same = true;            }            cur = cur->next;        }        if (flag_same == true) {            pre_pre->next = NULL;        }        else {            pre_pre->next = pre;        }        return newHead.next;    }};


0 0
原创粉丝点击