您的位置:首页 > 其它

LintCode : 删除链表中的重复元素

2017-04-12 11:33 405 查看

LintCode : 删除链表中的重复元素

题目

给定一个排序链表,删除所有重复的元素每个元素只留下一个。

样例

给出 1->1->2->null,返回 1->2->null

给出 1->1->2->3->3->null,返回 1->2->3->null

思路

感觉没什么好说的嘛,,就是遇到之前见过的就删掉就好了。。

代码

ListNode *deleteDuplicates(ListNode *head)
{
if(head == NULL)
return NULL;
map <int, int> dict;
ListNode *p = head;
ListNode *q = head->next;
dict[head->val] = 1;
while(q != NULL)
{
if(dict.find(q->val) != dict.end())
{
p->next = q->next;
free(q);
q = p->next;
}
else
{
dict[q->val] = 1;
p = p->next;
q = p->next;
}
}
return head;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表