怎么判断链表中是否有环?
详细分析请参考:http://blog.csdn.net/avajworm/article/details/6146116
本文转自:http://topic.csdn.net/t/20051126/20/4420360.html
具体思路是定义两个指针,一快一慢,如果链表中存在环的话,慢的指针一定能够追上快得指针
bool CircleInList(Link* pHead)
{
if(pHead == NULL || pHead-> next == NULL)//无节点或只有一个节点并且无自环
{
return (false);
}
if(pHead-> next == pHead)//自环
{
return (true);
}
Link *pTemp1 = pHead;//step 1
Link *pTemp = pHead-> next;//step 2
while(pTemp != pTemp1 && pTemp != NULL && pTemp-> next != NULL)
{
pTemp1 = pTemp1-> next;
pTemp = pTemp-> next-> next;
}
if(pTemp == pTemp1)
{
return (true);
}
return (false);
}
怎么判断链表中是否有环?相关推荐
- 【Java】环形链表 ( 给定一个链表,判断链表中是否有环)
题目描述 :给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,评测系统内部使用整数 po ...
- 判断链表中是否有环(环形链表)
题意: 给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位 ...
- 牛客题霸 判断链表中是否有环 C++题解/答案
牛客题霸 判断链表中是否有环 C++题解/答案 题目描述 判断给定的链表中是否有环 扩展: 你能给出空间复杂度的解法么? 题解: 在这介绍一个简便的方法:快慢指针 就是:一个指针走两步,一个指针走一步 ...
- 1:算法php/go [反转链表;LRU缓存结构 ;判断链表中是否有环]
目录 2021-12-01反转链表 12/10 设计LRU缓存结构 (参考牛客网) 判断链表中是否有环(参考牛客网) 给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头. 数据 ...
- 环形链表。给定一个链表,判断链表中是否有环。(GO、PHP)
给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引 ...
- 快慢指针判断链表中是否存在环以及查找环的起始位置
判断链表中是否有环? 使用快慢指针, 慢指针一次走一步, 快指针一次走两步, 当快慢指针相遇时,说明链表存在环 为什么快指针每次走两步而慢指针每次走一步呢? 因为slow指针和fast指针 ...
- 给定一个链表,判断链表中是否有环
给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引 ...
- 数据结构初阶(4)(OJ练习【判断链表中是否有环、返回链表入口点、删除链表中的所有重复出现的元素】、双向链表LinkedList【注意事项、构造方法、常用方法、模拟实现、遍历方法、顺序表和链表的区别)
接上次博客:数据结构初阶(3)(链表:链表的基本概念.链表的类型.单向不带头非循环链表的实现.链表的相关OJ练习.链表的优缺点 )_di-Dora的博客-CSDN博客 目录 OJ练习 双向链表--Li ...
- 链表系列--判断链表中是否有环。
给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引 ...
- 详解:如何判断链表中是否有环?
如何判断链表中是否有环是一道非常经典的题目,下面用3种方法实现. 方法一:暴力双重循环 直接使用双重循环,没什么好讲的. 方法二:使用HashSet 在方法一的基础上进行优化降低复杂度,使用hashS ...
最新文章
- “.Net 社区虚拟大会”(dotnetConf) 2016 Day 3 Keynote: Scott Hanselman
- 机器学习丨15个最流行的GitHub机器学习项目
- git 命令操作总结
- 41. 缺失的第一个正数 golang
- 洛谷P5709、P5710、P5711、P5712题题解(Java语言描述)
- C语言判断点是否在矩阵内
- VS Code解决Go相关工具无法安装问题
- python不带颜色的图形_python-Matplotlib添加基于现有颜色系列的图例
- Umbrella Network与Linear Finance合作,将专业金融数据带入DeFi
- sdk环境变量配置不成功
- 如果在魔兽世界中,做一个合格野性德
- BAPI货物移动时报错
- VSCode按ctrl与鼠标左键无法实现跳转的解决办法
- JavaScript制作动画
- md5sum 命令 – 计算文件内容的 md5 值
- 设置Excel单元格行宽列高
- 「大哉数学之为用」优选法——梯级水库灌溉的优化设计
- fama matlab源码_Fama French (1996)3因子模型 论文数据及matlab程序
- Getting help from shells
- stanfordcorenlp识别中文人名实战记录及心得