判断链表中是否有环

如下图,如何判断链表中存在环路呢?

一种简单的方法描述:

  1. 设置两个链表指针p1和p2并指向链表,设置两个记录指针移动次数的变量c1和c2。
  2. 在循环中,p1每次移动2个位置,c1加2;p1每次移动一个位置,c2加1。
  3. 若是两个指针中任何一个值是0(到达链表末尾),则退出并且无环路;否则,判断两个指针值是否相等,如果相等则退出且有环路,否则,继续执行第2步。
相关推荐
岛雨QA4 分钟前
常用十种算法「Java数据结构与算法学习笔记13」
数据结构·算法
weiabc4 分钟前
printf(“%lf“, ys) 和 cout << ys 输出的浮点数格式存在细微差异
数据结构·c++·算法
铸人4 分钟前
大数分解的Shor算法-C#
开发语言·算法·c#
问好眼7 分钟前
《算法竞赛进阶指南》0x01 位运算-3.64位整数乘法
c++·算法·位运算·信息学奥赛
yyjtx7 分钟前
DHU上机打卡D31
开发语言·c++·算法
GEO行业研究员7 分钟前
《认知锚定与路径锁死:基于爱搜光年模型的AI决策链条风险放大机制监测》
人工智能·算法·ai搜索优化·geo优化·医疗geo·医疗geo优化
wefg112 分钟前
【算法】单调栈和单调队列
数据结构·算法
岛雨QA19 分钟前
图「Java数据结构与算法学习笔记12」
数据结构·算法
czxyvX24 分钟前
020-C++之unordered容器
数据结构·c++
岛雨QA25 分钟前
多路查找树「Java数据结构与算法学习笔记11」
数据结构·算法