当前位置:网站首页>为什么用快慢指针找链表的环,快指针和慢指针一定会相遇?
为什么用快慢指针找链表的环,快指针和慢指针一定会相遇?
2022-07-21 05:05:00 【大莲芒】
这个问题你可以用数学归纳法来思考。首先,由于链表是个环,所以相遇的过程可以看作是快指针从后边追赶慢指针的过程。那么做如下思考:
- 快指针与慢指针之间差一步。此时继续往后走,慢指针前进一步,快指针前进两步,两者相遇。
- 快指针与慢指针之间差两步。此时唏嘘往后走,慢指针前进一步,快指针前进两步,两者之间相差一步,转化为第一种情况。
- 快指针与慢指针之间差N步。此时继续往后走,慢指针前进一步,快指针前进两步,两者之间相差(N+1-2)-> N-1步。
因此,此题得证。所以快指针必然与慢指针相遇。又因为快指针速度是慢指针的两倍,所以相遇时必然只绕了一圈。
边栏推荐
猜你喜欢
随机推荐
深度剖析 string —— strchr & strstr
Deep analysis of string -- strchr & strstr
深度剖析 —— 结构体
PCL学习第九章《采样一致性》
点击返回按钮,返回到之前的页面
Codeforces-479A
1009说反话
Fifth Bureau akali teaching Bureau data analysis
自学编程80余年,这些私藏的实用工具&学习网站陪我走到了现在,必须收藏,学习效率翻倍 - 网站篇
手写Promise
第四局 下 匹配数据分析
今天不拉扯了 不拉扯了 碎碎念 上
Deep analysis of string -- memset & memcmp
[C语言] 选择和循环来诠释浪漫 源代码
10.【file的打开格式及其判断是否打开】
The fifth Bureau, akali teaching Bureau
1014福尔摩斯约会
如何免费在本地播放flv格式的视频
图片、头像上传
Deep analysis recursion