发布时间:2026/8/25 18:03:00
LeetCode 141.环形链表 目录1 题目概述2 题目解法3 证明原题链接环形链表1 题目概述给你一个链表的头节点 head 判断链表中是否有环。如果链表中有某个节点可以通过连续跟踪 next 指针再次到达则链表中存在环。如果链表中存在环 则返回 true 。 否则返回 false 。示例1在遍历此链表时指针会在 2 到 -4 的这段区域不断地循环遍历因此链表中存在环示例2在遍历此链表时指针不会循环遍历链表最终会停止因此链表中不存在环2 题目解法在解决这道题目时所采用的方法是快慢指针法在使用快慢指针时保证慢指针每次走一步快指针每次走两步最终快慢指针相遇就能说明链表中存在环。如果快指针为空或快指针的下个结点为空则不存在环。存在环不存在环偶数个结点时奇数个结点时代码如下boolhasCycle(structListNode*head){structListNode*slowhead;structListNode*fasthead;while(fastfast-next){slowslow-next;fastfast-next-next;if(slowfast)returntrue;}returnfalse;}3 证明为什么慢指针走一步快指针走两步的话有环时它们一定能相遇呢如果慢指针走一步快指针走三步四步行不行呢首先来说说为什么慢指针走一步快指针走两步的话有环时它们一定能相遇以下面的链表为例在 slow 指针逐渐接近环时fast 指针已经在环内走了一段时间最终 slow 指针进入环时呈现出来的形式是这样的此时fast 和 slow 的距离为 4继续移动 slow 和 fast此时fast 和 slow 的距离为 3继续移动此时fast 和 slow 的距离为 2继续移动此时fast 和 slow 的距离为 1继续移动此时fast 和 slow 的距离为 0于是我们可以发现在快指针一次走两步慢指针一次走一步的情况下快慢指针之间的距离会逐渐缩小每次缩小1直到最后距离差为0因此我们可以假设在 slow 指针刚进环时fast 和 slow 之间的距离为 N在 fast 和 slow 逐渐移动的过程中距离 N 会不断减 1变成 N-1N-2N-3 … 1 0当距离为 0 时fast 和 slow 即可相遇因此在快指针一次走两步慢指针一次走一步的情况下两指针一定可以相遇再来说说如果慢指针走一步快指针走三步四步能不能让它们相遇在这里以慢指针走一步快指针走三步为例仍然假设在 slow 指针刚进环时fast 和 slow 之间的距离为 N此时如果让快慢指针开始移动那么快慢指针之间的距离差会逐渐减少 2变成 N-2N-4N-6N-8 …如果N 是偶数则距离最终会变成 0如果N 是奇数则距离最终会 变成 -1距离是 0表示 slow 和 fast 相遇距离是 -1表示 slow 和 fast 刚好错过无法相遇在这个情况下需要再次遍历环假设环的长度为 C那么fast 与 slow 的距离就是 C-1在遍历的过程中C-1又会不断地减2C-1 为偶数时最终会变成 0最终会相遇C-1 为奇数时最终会变成 -1最终不会相遇根据前面的结论如果一直不相遇那么 N 是奇数C是偶数真的是这样吗如果环内的结点较少环外的结点较多则在慢指针刚进环时快指针很有可能已经走了很多圈因此我们可以假设链表的起始位置到环的第一个结点的距离为 L快慢指针的距离为 N环的长度为 C此时slow 走过的距离为 Lfast 走过的距离为 L (x * C) (C - N) (x为走过的环的个数)又因为 fast 的速度为 slow 的三倍则距离也为 slow 的三倍因此可以得到等式 3L L (x * C) (C - N)化简可得 2L (x 1) * C - N根据我们得到的结论如果一直不相遇那么 N 是奇数C 是偶数将这个条件代入式中会发现并不成立因为偶数 ≠ 偶数 - 奇数在这样的情况下N 和 C 的取值只有下面两种情况N 为奇数C 为奇数N 为偶数C 为偶数当 N 为奇数C 为奇数时C - 1为偶数最终距离会为0快慢指针第一次不会相遇遍历第二次肯定会相遇当 N 为偶数时快慢指针一定会相遇所以slow 走一步fast走三步四步甚至更多时仍然会相遇

相关新闻

2026/8/25 18:03:00

Python装饰器深度解析:从核心原理到高级应用实战

1. 项目概述:为什么装饰器是Python开发者的必修课?如果你写过一段时间的Python,尤其是在接触Web框架(比如Flask、Django)或者一些测试框架时,一定见过那个神奇的“”符号。它看起来像语法糖,用起…

2026/8/26 1:54:37

LTspice仿真实战:从基础操作到电源设计高级技巧

LTspice这个软件,我是从“懒得用”到“离不开”的。大概六七年前,我在一家做电源模块的公司负责硬件开发,当时手头的仿真主力还是Cadence PSpice和另一款商业软件,每次做反激电源环路补偿、算MOS管开关损耗,总感觉要么…

2026/8/26 1:54:37

AI辅助容器化构建系统:告别环境漂移,实现一键可复现构建

最近在折腾一个以前写的开源小项目,叫 my_ai_town,一个模拟 AI 角色行为的小世界。项目本身不难,但构建链路非常恶心:前端要打包、后端有 Python 依赖、中间还夹着原生模块要编,每次换电脑或者新同事 clone 下来都要折…

2026/8/26 1:54:37

构建界面操作AI助手:从架构设计到工程实现

1. 项目概述:为什么你的产品需要一个“界面操作AI助手”?最近和几个做SaaS和工具类产品的朋友聊天,大家不约而同地提到了一个痛点:用户上手成本高。功能越做越强大,界面也变得越来越复杂,新用户进来常常一脸…

2026/8/26 1:54:37

NuttX工程师实战:从内核特性到BSP移植与调试

如果你在这个圈子里待得够久,会发现“嵌入式工程师”这个标签已经被细分得太厉害。有人玩单片机、有人写Linux驱动、有人深耕RTOS。而“The NuttX Engineer”这个标题,翻译过来其实就是“一个靠NuttX吃饭、干活、踩坑的人”。我最初接触NuttX时&#xff…

2026/8/26 1:49:37

技术需求挖掘与全流程追踪需要哪些关键材料?

观点作者:科易网-国家科技成果转化(厦门)示范基地 在全球新一轮科技革命和产业变革深入推进的背景下,科技创新已成为推动经济社会高质量发展的核心引擎。然而,科技成果转化过程中的瓶颈问题依然突出,尤其在…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 16:56:43

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 0:04:32

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 1:19:35

JSON总结

JSON概念 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,主要用于跟服务器进行交换数据。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C、C#、Java、JavaScr…

2026/8/26 1:19:35

保存连接sse 是什么原理,为什么不会一直请求

“保持连接”用的是 SSE(Server-Sent Events),本质是一个没有马上结束的 HTTP 请求。 过程是: 拷贝机发送一次请求: GET /api/code-sync/events服务器返回: Content-Type: text/event-stream但不关闭响应&…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…