1. 题目

2. 方法一
2.1. 代码
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head)
{
map<int,int> Non_repeat;
if(head==NULL) return head;
ListNode* Temp_link=head,*Current_link=head->next;
Non_repeat[Temp_link->val]=1;
while(Current_link!=NULL)
{
if(Non_repeat.count(Current_link->val)==0)
{
Non_repeat[Current_link->val]=1;
Temp_link=Current_link;
Current_link=Current_link->next;
}
else
{
Temp_link->next=Current_link->next;
Current_link=Current_link->next;
}
}
return head;
};
};
2.2. 结果

3. 方法二迭代
3.1. 代码
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head)
{
if(head==NULL||head->next==NULL) return head;
head->next=deleteDuplicates(head->next);
return head->val==head->next->val?head->next:head;
};
};
3.2. 结果
