Leetcode 82. Remove Duplicates from Sorted List II (Medium) (cpp)

来源:互联网 发布:windows隐藏的文件夹 编辑:程序博客网 时间:2024/06/06 03:25

Leetcode 82. Remove Duplicates from Sorted List II (Medium) (cpp)

Tag: Linked List

Difficulty: Medium


/*82. Remove Duplicates from Sorted List II (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.*//** * 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 || head -> next == NULL) {            return head;        }        ListNode *dummy = new ListNode(-1);        dummy -> next = head;        ListNode *p = dummy;        while (head != NULL) {            ListNode *post = head -> next;            if (post != NULL && post -> val == head -> val) {                while (post != NULL && post -> val == head -> val) {                    post = post -> next;                }                 head = post;                p -> next = head;            } else {                p = head;                head = head -> next;            }        }        return dummy -> next;    }};


0 0
原创粉丝点击