链表是否成环--步差法

好看吗.png

如果链表的长度小于三个的话,那么不可能成环;
步差法的意思就是说一个人走一步,一个人走两步,如果第二个人追上了第一个人(超圈了)那么就代表有环。如果走到了路的尽头,也就是next为null,那么没有环。

分析:
第一次:p = 2 , q = 3;
第二次:p = 3 , q = 5;
第三次:p = 4 , q = 3;
第四次:p = 5 , q = 5; p q 相等,那么单链表成环~

代码:

listCycle.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文来自本人著作《趣学数据结构》 链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不一定相邻,那么...
    rainchxy阅读 3,786评论 6 20
  • 本文内容取自于小甲鱼的数据结构与算法。http://www.jianshu.com/p/230e6fde9c75 ...
    阿阿阿阿毛阅读 2,929评论 0 7
  • //leetcode中还有花样链表题,这里几个例子,冰山一角 求单链表中结点的个数----时间复杂度O(n)这是最...
    暗黑破坏球嘿哈阅读 1,535评论 0 6
  • include<iostream> using namespace std; //单链表 typedef stru...
    jmychou阅读 450评论 0 0
  • 1.线性表的定义 线性表:零个或多个数据元素的有限序列序列:也就是说元素之间是有顺序的,若元素存在多个,则第一个元...
    e40c669177be阅读 2,094评论 6 15