news 2026/5/11 22:53:55

day134—快慢指针—环形链表(LeetCode-141)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day134—快慢指针—环形链表(LeetCode-141)

题目描述

给你一个链表的头节点head,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos不作为参数进行传递。仅仅是为了标识链表的实际情况。

如果链表中存在环,则返回true。 否则,返回false

示例 1:

输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。

示例 2:

输入:head = [1,2], pos = 0输出:true解释:链表中有一个环,其尾部连接到第一个节点。

示例 3:

输入:head = [1], pos = -1输出:false解释:链表中没有环。

提示:

  • 链表中节点的数目范围是[0, 104]
  • -105 <= Node.val <= 105
  • pos-1或者链表中的一个有效索引

解决方案:

这段代码的核心功能是判断单链表中是否存在环形结构(即链表的某个节点的next指向链表中之前的节点,形成闭环),采用「快慢指针(龟兔赛跑)」的经典方法实现,时间复杂度O(n)、空间复杂度O(1),是判断链表环的最优解法。

核心逻辑

代码利用快慢指针的运动特性:若链表无环,快指针会先走到末尾;若有环,快慢指针最终会在环内相遇:

  1. 边界预判:先判断链表为空或只有一个节点,直接返回false(不可能有环);
  2. 指针初始化:慢指针low和快指针fast都从链表头节点head出发;
  3. 快慢遍历与相遇判断:循环条件为fast不为空且fast->next不为空(保证快指针能走两步):
    • 慢指针low每次走 1 步,快指针fast每次走 2 步;
    • 若某一时刻fast == low(快慢指针相遇),说明链表有环,立即返回true
  4. 无环返回:若循环结束(快指针走到链表末尾),说明链表无环,返回false

总结

  1. 核心思路:利用快慢指针步长差(1:2),无环则快指针先到终点,有环则快慢指针必在环内相遇;
  2. 关键细节:循环条件fast && fast->next避免快指针访问空指针的next导致崩溃;
  3. 效率优势:无需额外空间(如哈希表)存储节点,仅用两个指针完成判断,空间复杂度为O(1)

函数源码:

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: bool hasCycle(ListNode *head) { if(head==nullptr || head->next==nullptr){ return false; } ListNode* low=head; ListNode* fast=head; while(fast && fast->next){ low=low->next; fast=fast->next->next; if(fast==low) return true; } return false; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 15:08:03

文档翻译在高校中的应用

唐帕文档翻译在高校的应用&#xff1a;多元场景与价值提升 在全球化与知识共享加速的背景下&#xff0c;唐帕文档翻译在高等教育领域的作用日益凸显。高校作为学术研究、人才培养和国际交流的核心枢纽&#xff0c;对高效、精准的文档翻译有着广泛而深入的需求。其应用主要体现…

作者头像 李华
网站建设 2026/5/1 11:40:18

sys系统消息

今天我们特别来讲一讲关于sys系统消息 1、DTIMER_WAKEUP deep sleep timer定时时间到回调 额外返回参数 无 例子 sys.subscribe("DTIMER_WAKEUP", function(timer_id)log.info("deep sleep timer", timer_id) end)2、YHM27XX_REG YHM27XX芯片寄存器…

作者头像 李华
网站建设 2026/5/11 13:58:40

AI搜索新趋势:品牌推广如何赢得DeepSeek等智能模型的青睐?

在生成式AI&#xff08;如DeepSeek、豆包、Kimi&#xff09;快速发展的今天&#xff0c;传统的搜索引擎优化&#xff08;SEO&#xff09;正在向生成式引擎优化&#xff08;GEO&#xff09;演进。品牌信息的传播逻辑发生了重要变化&#xff1a;不仅要争取在搜索结果中排名靠前&a…

作者头像 李华
网站建设 2026/4/30 12:34:44

中国上市公司股吧数据集(含帖子正文、回帖互动、用户画像与粉丝关系,共6万+结构化样本与统一ID可关联),支持金融舆情分析、推荐排序、社交网络挖掘与中文大模型训练的高质

本数据集系统整理了与中国上市公司相关的股吧平台结构化互动数据&#xff0c;围绕“内容—互动—用户—关系”四个维度提供统一、规整且可关联的字段与时间戳信息&#xff0c;能够较为完整地反映投资者在社区中的发帖与回帖行为、用户活跃特征与社交关注关系。借助该数据集&…

作者头像 李华