如果链表的长度小于三个的话,那么不可能成环;
步差法的意思就是说一个人走一步,一个人走两步,如果第二个人追上了第一个人(超圈了)那么就代表有环。如果走到了路的尽头,也就是next为null,那么没有环。
分析:
第一次:p = 2 , q = 3;
第二次:p = 3 , q = 5;
第三次:p = 4 , q = 3;
第四次:p = 5 , q = 5; p q 相等,那么单链表成环~
代码:
listCycle.png如果链表的长度小于三个的话,那么不可能成环;
步差法的意思就是说一个人走一步,一个人走两步,如果第二个人追上了第一个人(超圈了)那么就代表有环。如果走到了路的尽头,也就是next为null,那么没有环。
分析:
第一次:p = 2 , q = 3;
第二次:p = 3 , q = 5;
第三次:p = 4 , q = 3;
第四次:p = 5 , q = 5; p q 相等,那么单链表成环~
代码:
listCycle.png本文标题:链表是否成环--步差法
本文链接:https://www.haomeiwen.com/subject/jivbnxtx.html
网友评论