无序链表的去重问题
来源:互联网 发布:电子电路cad绘图软件 编辑:程序博客网 时间:2024/04/28 18:02
给定一个链表,无序的,去除其中重复的数字后返回。
solution1:哈希表法:建立一个哈希表,遍历链表的节点,哈希表中已经存在该节点的就删除,否则将其加进哈希表中。时间复杂度O(n).空间负责度O(256)
solution2:若不能申请额外的空间,即空间复杂度为0,则双层遍历链表中的节点,当前节点与已经遍历过的节点之前的链表比较。若相等就删除否则继续往下遍历。
第一种方法的代码:
class solution{
public:
ListNode * DeleteDuplicates(ListNode * head)
{
ListNode *pre=NULL, * cur=head;
int m[256]={0};
while(cur)
{
if(m[cur->val]>0)
pre->next=cur->next;
else
{pre=cur;
cur=cur->next;
}
}
return head;
}
};
第二种方法的代码:
class solution{
public:
ListNode * DeleteDuplicates(ListNode * head)
{
ListNode * com=head, *cur=head;
while(com)
{ cur=com->next;
ListNode * pre=cur;
while(cur)
{
if(cur->val==com->val)
pre->next=cur->next;
else
{ pre=cur;
cur=cur->next;}
}
com=com->next;
}
return head;
}
};
- 无序链表的去重问题
- 【iOS开发】数组的去重(无序和有序)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- iOS 数组的去重(普通的无序的去重和排序好的去重)
- 数组的去重问题
- 有序去重的问题
- HashSet的去重问题
- 数据去重的问题
- 算法:有序链表的去重
- Python中List的去重问题
- 关于list集合的去重问题
- 根据oracle的rowid去重问题
- json数组去重的问题--indexOf
- 网页去重问题
- 数据库去重问题
- 查询去重问题
- Advanced Fruits
- centOS 7下如何重新配置root密码
- 资源
- 怎么快速删除文件
- radio select 样式修改CSS
- 无序链表的去重问题
- 正确实现用spring扫描自定义的annotation
- H5的新特新及API
- MySQL集群搭建详解
- java学习笔记(三)注释、关键字、标识符、常量及其命名
- 分块查找
- [JZOJ5041]游戏
- 大数据:Spark Core (一) 什么是RDD的Transformation和Actions以及Dependency?
- try catch finally 用法