链表OJ—环形链表||

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

世上有两种耀眼的光芒,一种是正在升起的太阳,一种是正在努力学习编程的你!一个爱学编程的人。各位看官,我衷心的希望这篇博客能对你们有所帮助,同时也希望各位看官能对我的文章给与点评,希望我们能够携手共同促进进步,在编程的道路上越走越远!


提示:以下是本篇文章正文内容,下面案例可供参考

1、环形链表题目:

2、方法讲解:

图文解析:

解题思路:采用双指针的方法(slow、fast),刚开始让他们都指向链表的头节点,,slow指针每次走一步,fast指针每次走两步。

1:如果该链表不带环的话,那fast指针走到空,循环就结束,返回NULL;

2:如果该链表带环的话,那fast指针先进环,在环内循环,slow指针后进环,就会产生追击的效果,因为fast指针每次走两步,slow指针每次走一步,fast指针和slow指针在环内每走一个过程,两个指针的距离就减少1,fast指针走过的路程 = slow指针走过路程的2倍。

代码实现:

其他的两种情况:

2、slow一次走1步,fast一次走3步,一定会相遇吗?

3、slow一次走n步,fast一次走m步,一定会追上吗?m>n>1

距离缩小m-n(>= 1的整数)

N%(m-n) == 0      一定能追上


总结

好了,本篇博客到这里就结束了,如果有更好的观点,请及时留言,我会认真观看并学习。
不积硅步,无以至千里;不积小流,无以成江海。

猜你喜欢

转载自blog.csdn.net/2301_79585944/article/details/134899690