关注
快慢指针原理说明:1.单向链表中如果有环,一定是最后一个结点的后继指针又指向了已遍历结点(这个已遍历结点可以称为三叉结点,因为该结点有两个入口一个出口),从而形成环。2.因为有环的存在,所以以后继结点非空为条件进行的遍历永远不会停止。3.当慢指针首次到达三叉结点,也就是慢指针开始进入环中时,快指针可能位于环中任一结点处:快指针可能落后慢指针0个结点(快慢指针均位于三叉结点,即刚好相遇)、落后1个结点、2个结点、3个等等,最多落后L-1个节点(L是环中结点总数,即快指针恰位于慢指针的后继结点处)。由于快指针每一跳都比慢指针多前进一个位置,因此,快指针最多也只需要L-1跳就追上慢指针(相遇)。如果是L-1跳后两指针才首次相遇,此时,慢指针刚好来到链表最后一个结点(三叉结点的前驱结点)。因此可以断言:快慢指针首次相遇时,慢指针走过的距离不超过链表的总长度。ps:纯文字描述可能难以理解,可以画图辅助,将三叉结点标记为L号结点,画一个包含L个结点的环即可。
3
牛客热帖
正在热议
# 拼多多求职进展汇总 #
239047次浏览 2044人参与
# 实习,投递多份简历没人回复怎么办 #
2444588次浏览 34770人参与
# 北方华创开奖 #
67659次浏览 555人参与
# 25届秋招总结 #
419117次浏览 4207人参与
# ai智能作图 #
32861次浏览 404人参与
# 地方国企笔面经互助 #
7197次浏览 17人参与
# 阿里云管培生offer #
64250次浏览 1765人参与
# 虾皮求职进展汇总 #
97305次浏览 789人参与
# 我在牛爱网找对象 #
75091次浏览 556人参与
# 机械求职避坑tips #
24064次浏览 251人参与
# 发工资后,你做的第一件事是什么 #
9879次浏览 45人参与
# 25届机械人为了秋招做了哪些准备? #
26683次浏览 365人参与
# 投格力的你,拿到offer了吗? #
47730次浏览 337人参与
# 我的实习求职记录 #
6139428次浏览 84047人参与
# 投递实习岗位前的准备 #
1192732次浏览 18502人参与
# 机械人怎么评价今年的华为 #
158284次浏览 1354人参与
# 实习想申请秋招offer,能不能argue薪资 #
37057次浏览 310人参与
# 实习与准备秋招该如何平衡 #
725302次浏览 8566人参与
# 华为工作体验 #
112185次浏览 869人参与
# 如果再来一次,你还会选择这个工作吗? #
118231次浏览 1163人参与
# 在职场上,你最讨厌什么样的同事 #
6348次浏览 94人参与
# 国央企笔面经互助 #
88782次浏览 897人参与