82 Remove Duplicates from Sorted List II
链接: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.
For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.
Hide Tags Linked List
因为链表都是排序好的,先从头部开始找起,相同元素则删除。不同元素保留,如每次寻找都看成一个子问题,那么这些问题都一模一样。因此可以用递归求解,参考链接:http://www.cnblogs.com/qianye/archive/2013/09/14/3320640.html
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
if(head==NULL||head->next==NULL) return head;
ListNode *t=head,*p;
while(t->next!=NULL&&t->val==t->next->val)
t=t->next;
if(head!=t)
{
while(head!=t->next)
{
p=head;
head=head->next;
delete p;
}
return deleteDuplicates(head);
}
else
head->next=deleteDuplicates(head->next);
return head;
}
};