网站制作建设南昌网站建设公司

杭州杭耀网络科技有限公司 2026/09/09 19:42:51

LeetCode---环形链表 II

首先要解决这个题,我们先要明白我们要考虑的情况

如果链表没有环,则直接返回null

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

如果有环,那我们也要考虑两种情况

圈大

从上面的图片中我们可以看出,当fast一次走两步,slow一次走一步的时候,我们会发现,

slow所走的路程是X+C-Y

fast所走的路程是X+C+C-Y

注意:慢指针不会走了很多圈才会被追上,实际上慢指针最多走半圈

如果实在想不懂,可以看看上面的图,一步一步带入进去

由于fast是一次性走两步,slow是一次性走一步

所以fast所走的路程是slow所走路程的两倍

slow所走的路程是X+C-Y

fast所走的路程是X+C+C-Y

所以我们可以列出等式 X+C+C-Y=2*(X+C-Y)

化简之后就可以看到

X==Y

由于X==Y

所以我们让指针1指针2同时走,那么它俩就会在入环的第一个节点相遇

圈小

所谓的圈小,就是当slow进环的时候,fast已经走了很多圈了

此时当slow和fast相遇的时候,走的路程分别是

slow:X+C-Y

fast:X+N*C+C-Y

由于fast所走的路程是slow的两倍

所以

2*(X+C-Y)=X+N*C+C-Y

化简后得到

x+c-y=nc

x=(n-1)c+y

当n==0的时候,X==Y,恰好是圈大的情况

当fast走了n-1圈后,依旧是回到相遇点,然后再加上个Y,正好是入环的第一个节点

假设圈的长度是2,当slow走了X的一半的时候,fast恰好入环

此时,slow每走一步,fast就走一圈

完整版代码:

public class Solution { public ListNode detectCycle(ListNode head) { ListNode slow=head; ListNode fast=head; //首先在环中找到相遇的点 while(fast!=null&&fast.next!=null){ slow=slow.next; fast=fast.next.next; if(slow==fast){ break; } } //没找到环的情况 if(fast==null||fast.next==null){ return null; } //定义一个新节点,从头开始走,每次走一步,fast也每次走一步 //当cur和fast相等的时候,跳出循环,此时这个节点就是入环的第一个节点 ListNode cur=head; while(cur!=fast){ cur=cur.next; fast=fast.next; } return cur; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

网站制作建设网站的建设

第一章:AI日程管理新突破概述人工智能技术正以前所未有的速度重塑个人与组织的时间管理方式。在日程规划领域,新一代AI系统通过自然语言理解、上下文感知和预测性分析࿰

2026/06/30 11:41:27

pc网站建设网站建设 上海

深度解析Transformer可视化工具:从注意力机制到参数高效架构【免费下载链接】bertvizBertViz: Visualize Attention in NLP Models (

2026/06/30 14:19:40

网络建设网站网站建设建网站

从算法到硬件:在Vivado中构建一个可仿真的QPSK调制系统你有没有过这样的经历?在MATLAB里把QPSK调制跑得漂漂亮亮,星座图圆润对称,

2026/06/30 13:34:36

网站建设项目东营网站建设

在科研验证、产品优化、工程设计等场景中,ANSYS有限元分析已成为“用数字模拟现实”的核心工具。然而,对于刚接触该技术的从业者而言,常陷入“流程混乱、技巧缺失

2026/06/30 13:59:08

网站建设书福州网站建设

Excalidraw浏览器兼容性测试报告在远程协作成为常态的今天,一款“开箱即用”的可视化工具往往能决定一场技术讨论是否高效推进。Excalidraw正是这样一款产品——没有复杂的注册流

2026/06/30 11:32:57

网站建设策划方案布吉网站建设

第一章:Rust扩展PHP函数注册的核心概念在现代Web开发中,PHP作为一门动态脚本语言广泛用于服务器端逻辑处理。然而,其性能瓶颈在高并发或计算密集型场景中

2026/06/30 12:22:00

六安网站建设网站建设专家

Vue前端展示Qwen3Guard-Gen-8B审核结果:可视化界面设计在当今AI内容生成爆发式增长的背景下,从社交媒体评论到智能客服回复,大语言模型

2026/06/30 10:42:51

网站建设哪家公司好旅游网站建设

Dify贡献者提交PR的标准流程说明在开源社区,一个项目的健康程度往往不只取决于代码本身的质量,更体现在其协作流程的清晰度与可参与性。对于像 Dify 这样的 AI 原生应

2026/06/30 14:00:38

网站建设模板江门网站建设

特性工作输入电压范围:2.5V至5.5V固定输出电压:1.2V、1.5V、1.8V、2.5V、2.6V、2.8V、2.85V、3.0V、3.3V可调输出电压范围࿱

2026/06/30 13:16:35

云南网站建设湛江网站建设

G3N引擎终极指南:Go语言3D游戏开发快速上手教程【免费下载链接】engineGo 3D Game Engine (http://g3n.rocks)项目地址: https://git

2026/06/30 12:52:03