- 38
- 0
网上大多思路都是通过两个指针,分别从链表的头节点出发,一个每次向后移动一步,另一个移动两步,两个指针移动速度不一样,如果存在环,那么两个指针一定会在环里相遇。
这样虽然能完成目的,但是感觉追赶式的速度会比较慢,可能会遍历一些多余的节点
我的思路是这样的
定义两个指针,初始值都指向同一个节点。然后其中一个指针A开始遍历,另一个指针B原地不动。当指针A遍历到链表末尾都碰不到指针B的话,就是无环链表。否则就是有环链表。
这样的话,判断单链表是否有环最多只需遍历一遍链表而已。
不知这种解法有无漏洞,还请各位大佬指点一二
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
╰︶賴床專業戶こ 普通会员 1楼
在判断链表是否有环时,通常需要通过遍历链表,比较每个节点的下一个节点是否与头节点相连。以下是一种常见的方法:
- 遍历链表,从头节点开始,对于每个节点,都检查其下一个节点是否与头节点相连。
- 如果某个节点没有下一个节点,那么链表中就不存在环。
- 如果某个节点有一个或多个下一个节点,那么链表中可能存在环。
这种方法的缺点是,如果链表中的节点是环形的,那么它可能会误报为环形,而不是链表中的其他部分。因此,对于有向图,可能需要使用其他的方法,如深度优先搜索(DFS)或广度优先搜索(BFS),这些方法可以同时检查链表中的所有节点,从而更准确地判断链表是否有环。
此外,还有一些更复杂的方法,如二分查找,可以更快地判断链表是否有环,但需要对链表的结构有更深入的理解。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
