关注
快慢指针原理说明:1.单向链表中如果有环,一定是最后一个结点的后继指针又指向了已遍历结点(这个已遍历结点可以称为三叉结点,因为该结点有两个入口一个出口),从而形成环。2.因为有环的存在,所以以后继结点非空为条件进行的遍历永远不会停止。3.当慢指针首次到达三叉结点,也就是慢指针开始进入环中时,快指针可能位于环中任一结点处:快指针可能落后慢指针0个结点(快慢指针均位于三叉结点,即刚好相遇)、落后1个结点、2个结点、3个等等,最多落后L-1个节点(L是环中结点总数,即快指针恰位于慢指针的后继结点处)。由于快指针每一跳都比慢指针多前进一个位置,因此,快指针最多也只需要L-1跳就追上慢指针(相遇)。如果是L-1跳后两指针才首次相遇,此时,慢指针刚好来到链表最后一个结点(三叉结点的前驱结点)。因此可以断言:快慢指针首次相遇时,慢指针走过的距离不超过链表的总长度。ps:纯文字描述可能难以理解,可以画图辅助,将三叉结点标记为L号结点,画一个包含L个结点的环即可。
4
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
2038次浏览 54人参与
# 机械人你知道哪些单休企业 #
82938次浏览 413人参与
# 今年春招是金一银二嘛? #
7222次浏览 80人参与
# 没关系,至少我的__很曼妙 #
3522次浏览 62人参与
# 1月小结:你过的开心吗? #
1626次浏览 50人参与
# 赚钱的意义在这一刻具象化 #
3682次浏览 90人参与
# 抛开难度不谈,你最想去哪家公司? #
3609次浏览 91人参与
# AI时代的工作 VS 传统时代的工作,有哪些不同? #
7708次浏览 185人参与
# 为什么有人零实习也能进大厂? #
4559次浏览 104人参与
# 你的第一家实习公司是什么档次? #
3835次浏览 67人参与
# 你的landing期是如何度过的? #
7859次浏览 145人参与
# 当你问AI“你会取代我的工作吗”,它说_? #
3340次浏览 120人参与
# 参加完秋招的机械人,还参加春招吗? #
103442次浏览 682人参与
# 机械人春招想让哪家公司来捞你? #
379104次浏览 3139人参与
# 除了Java,最推荐学什么技术? #
5333次浏览 136人参与
# AI求职实录 #
2766次浏览 81人参与
# 一人一道大厂面试题 #
114063次浏览 1263人参与
# 设计人如何选offer #
187053次浏览 864人参与
# 你在职场上见过哪些“水货”同事 #
30689次浏览 167人参与
# 简历中的项目经历要怎么写? #
287711次浏览 3801人参与
查看7道真题和解析