详细分析请参考: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);
}

怎么判断链表中是否有环?相关推荐

  1. 【Java】环形链表 ( 给定一个链表,判断链表中是否有环)

    题目描述 :给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,评测系统内部使用整数 po ...

  2. 判断链表中是否有环(环形链表)

    题意: 给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位 ...

  3. 牛客题霸 判断链表中是否有环 C++题解/答案

    牛客题霸 判断链表中是否有环 C++题解/答案 题目描述 判断给定的链表中是否有环 扩展: 你能给出空间复杂度的解法么? 题解: 在这介绍一个简便的方法:快慢指针 就是:一个指针走两步,一个指针走一步 ...

  4. 1:算法php/go [反转链表;LRU缓存结构 ;判断链表中是否有环]

    目录 2021-12-01反转链表 12/10 设计LRU缓存结构 (参考牛客网) 判断链表中是否有环(参考牛客网) 给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头. 数据 ...

  5. 环形链表。给定一个链表,判断链表中是否有环。(GO、PHP)

    给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引 ...

  6. 快慢指针判断链表中是否存在环以及查找环的起始位置

    判断链表中是否有环?    使用快慢指针, 慢指针一次走一步, 快指针一次走两步, 当快慢指针相遇时,说明链表存在环 为什么快指针每次走两步而慢指针每次走一步呢?    因为slow指针和fast指针 ...

  7. 给定一个链表,判断链表中是否有环

    给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引 ...

  8. 数据结构初阶(4)(OJ练习【判断链表中是否有环、返回链表入口点、删除链表中的所有重复出现的元素】、双向链表LinkedList【注意事项、构造方法、常用方法、模拟实现、遍历方法、顺序表和链表的区别)

    接上次博客:数据结构初阶(3)(链表:链表的基本概念.链表的类型.单向不带头非循环链表的实现.链表的相关OJ练习.链表的优缺点 )_di-Dora的博客-CSDN博客 目录 OJ练习 双向链表--Li ...

  9. 链表系列--判断链表中是否有环。

    给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引 ...

  10. 详解:如何判断链表中是否有环?

    如何判断链表中是否有环是一道非常经典的题目,下面用3种方法实现. 方法一:暴力双重循环 直接使用双重循环,没什么好讲的. 方法二:使用HashSet 在方法一的基础上进行优化降低复杂度,使用hashS ...

最新文章

  1. “.Net 社区虚拟大会”(dotnetConf) 2016 Day 3 Keynote: Scott Hanselman
  2. 机器学习丨15个最流行的GitHub机器学习项目
  3. git 命令操作总结
  4. 41. 缺失的第一个正数 golang
  5. 洛谷P5709、P5710、P5711、P5712题题解(Java语言描述)
  6. C语言判断点是否在矩阵内
  7. VS Code解决Go相关工具无法安装问题
  8. python不带颜色的图形_python-Matplotlib添加基于现有颜色系列的图例
  9. Umbrella Network与Linear Finance合作,将专业金融数据带入DeFi
  10. sdk环境变量配置不成功
  11. 如果在魔兽世界中,做一个合格野性德
  12. BAPI货物移动时报错
  13. VSCode按ctrl与鼠标左键无法实现跳转的解决办法
  14. JavaScript制作动画
  15. md5sum 命令 – 计算文件内容的 md5 值
  16. 设置Excel单元格行宽列高
  17. 「大哉数学之为用」优选法——梯级水库灌溉的优化设计
  18. fama matlab源码_Fama French (1996)3因子模型 论文数据及matlab程序
  19. Getting help from shells
  20. stanfordcorenlp识别中文人名实战记录及心得

热门文章

  1. CAD图转成Protel封装
  2. 06-发送短信验证码实现登录功能
  3. Microsoft Office Open XML 格式和文件扩展名
  4. ISO20000认证一般要多少钱
  5. Wlan开关/Wifi开关变灰无法开启的问题(win8/win8.1系统)
  6. MySQL 用于汉字要使用二进码
  7. 个人金融借贷场景下,大数据风控的行业分析及应用分析
  8. 戴尔科技集团以技术突破创新边界
  9. 正在用Wordpress做一个老外学中文的网站
  10. 【058】英语词根词缀记忆大全【转】