校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 单向链表
题目

判断单链表中是否有环,写出代码

解答

如果只用一个指针next的话 ,是不能知道到底有环造成一直循环还是链表长度很长造成的,而且循环了的话,程序没有终结态。


所以只能考虑两个指针low和fast,slow一次走一步,fast一次走两步。

如果存在环的话,当slow进入环后,fast每次追赶slow一步,所以一定会在slow一圈之内赶上。即slow==fast时,存在环


bool isExitsLoop(Node head){
         Node slow = head;
         Node fast = head;
         while ( fast && fast.next ) {
                 slow = slow.next;
                 fast = fast.next.next;
                 if ( slow == fast ) break;
          }
          return !(fast == null || fast.next == null);
}





C 10条回复 评论
不会拓扑的数学汪

请问 一下,我本科就是软件工程(软件测试方向),以后也想成为软件测试工程师,目前大三即将结束,我之前是准备考研 ,也只是知道考研没有考虑具体什么方向之类的。因为软件测试是专业课 大三下才开课,我现在发现考研的学校 基本没有 软件测试方向的,都是比较热门的大数据、人工智能等研究方向。 所以 想成为软件测试工程师 是在大四时好好学习技术 然后本来毕业找工作?还是 应该考研究生(只是 我发现研究生没有研究软件测试的,也可能我没关注到) ?

发表于 2023-08-02 22:00:00
0 0
pyyyyy

这么久了终于弄明白这个问题

发表于 2023-07-13 22:00:00
0 0
山田心的平方

在卷的地方,测试要比开发还要开发,又要懂业务又要懂测试,还要懂运维,我都搞不懂现在测试到底是个什么角色了

发表于 2021-09-10 22:15:00
0 0
CandyPilot

长记性了,下次再也不错了

发表于 2021-09-09 16:05:00
0 0
假期

双指针双指针

发表于 2021-03-01 23:43:18
0 0
ZZZ29

从一个节点出发看能不能遍历到自己

发表于 2021-03-01 10:26:12
0 0
木木9527

双指针。经典用法

发表于 2020-10-29 15:06:34
0 0
落地98K

看懂了

发表于 2018-10-13 14:44:52
0 0
繁星知晓

本来觉得没思路的题,代码就那么几行。。。。

发表于 2018-10-13 14:44:40
0 0
途安米

环里面还套着环满足这个结论吗

发表于 2020-10-29 12:01:59
1 0
求个offer :

单链表你咋让环套环?一个节点只能指向一个唉

发表于 2020-10-29 12:01:59
回复