/**
* 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) {
ListNode *pre, *cur;
if (head == NULL)
return head;
ListNode *fakehead = new ListNode(0);
fakehead->next = head;
pre = fakehead;
cur = head;
while (cur)
{
bool duplicated = false;
while(cur->next && cur->val == cur->next->val)
{
duplicated = true;
ListNode *tmp = cur;
cur = cur->next;
delete tmp;
}
if (duplicated)
{
ListNode *tmp = cur;
cur = cur->next;
delete tmp;
continue;
}
pre->next = cur;
pre = pre->next;
cur = cur->next;
}
pre->next = cur;
return fakehead->next;
}
};
【LeetCode】Remove Duplicates from Sorted List II
最新推荐文章于 2024-01-17 14:07:10 发布