首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
入环点专题
求单链表是否有环、环长、入环点、链长
1. 单链表是否有环 用两个快慢指针去判断单链表是否环,快指针的速度是慢指针的两倍,若单链表有环,则两个指针会先后进入环内,并且快指针会从后面追上慢指针。下面来严谨地分析一下两个指针在环内相遇的情况。 假设此时慢指针s和快指针f都在环内,相隔k点,环内共有R点,t时间之后,两指针相遇。 [快指针最终位置 = 慢指针最终位置] -> [(2t mod R) + k = (t mod R)] 假
阅读更多...
判断单链表是否有环?中点如何判断?入环点如何判断?
首先我们需要克服我们一种错误的认知,链表有环,并不是有“死节”,如下所示,左侧的这种链表结构是不存在的,因为在相交的那个节点不可能有两个指针,只有像右侧这种结构才是存在的 判断链表是否有环的方法: 第一种使用哈希表,在遍历的过程中将节点存入哈希表,如果发现某个节点在表中已经存在了,那么这个链表就是有环的,并且这个节点就是入环节点 第二种方法叫做Floyd判圈算法,或者是龟兔赛跑算法,其实
阅读更多...