https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
Example 1:
Input: 1->2->3->3->4->4->5 Output: 1->2->5
Example 2:
Input: 1->1->1->2->3 Output: 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 || !head ->next) return head;
ListNode *dummy = new ListNode(-1), *pre = dummy;
dummy -> next = head;
while(pre -> next) {
ListNode *cur = pre -> next;
while(cur -> next && cur -> val == cur -> next -> val)
cur = cur -> next;
if(cur != pre -> next) pre -> next = cur -> next;
else pre = pre -> next;
}
return dummy ->next;
}
};
有可能头结点就是重复的是要被删除的 所以要 dummy
FHFHFH
#Leetcode# 82. Remove Duplicates from Sorted List II
原文:https://www.cnblogs.com/zlrrrr/p/10292125.html