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

诸城市德仁机械科技有限公司 2026/09/09 19:27:30

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; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

荆门网站建设上海外贸网站建设

3个场景带你玩转Venera漫画阅读器:从入门到精通的实战分享【免费下载链接】veneraA comic app项目地址: https://gitcode.com/gh_mirrors/

2026/06/30 12:14:30

建设银行网站网站建设套餐

5.1 单自由度磁悬浮系统数学模型建立准确且实用的数学模型是分析、设计与控制磁悬浮轴承系统的基石。单自由度模型虽然简化,但完整揭示了磁悬浮系统“本质不稳定”的核心物理特性、线性化处理方法以及状态空间描

2026/06/30 10:41:21

商务网站建设上海外贸网站建设

灰度发布流程设计:新版本逐步上线降低风险在语音识别系统日益深入企业办公、会议记录和智能客服的今天,模型迭代的速度已经远远超过了传统软件部署的节奏。一个微小的性能退化——比如

2026/06/30 12:39:02

网站建设报价网站建设公司哪个好

铜钟音乐平台终极使用指南:免费纯净听歌完整教程【免费下载链接】tonzhon-music铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资

2026/06/30 13:47:37

四平网站建设网站建设基础知识

PaddlePaddle流水线并行训练实战:突破单卡内存限制在大模型时代,一个现实而尖锐的问题摆在每一位深度学习工程师面前:如何用有限的GPU资源࿰

2026/06/30 10:52:22

北京网站建设报价山东省建设厅网站

第一章:Open-AutoGLM 本地私有化在企业级应用中,数据隐私与模型可控性成为部署大语言模型的核心诉求。Open-AutoGLM 支持本地私有化部署,使

2026/06/30 12:37:32

网站建设心得永州网站建设

Nuklear命令式UI替代方案:从传统框架到轻量级实战指南【免费下载链接】NuklearA single-header ANSI C immediate mode cross-plat

2026/06/30 13:35:06