news 2026/4/29 7:06:50

【每天学习一点算法 2025/12/15】环形链表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【每天学习一点算法 2025/12/15】环形链表

每天学习一点算法 2025/12/15

题目:环形链表

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

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

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

  1. 首先想到的方法就是用Map存储节点,如果遇到重复的节点说明有环。

    functionhasCycle(head:ListNode|null):boolean{if(!head||!head.next)returnfalse;constmap=newMap();while(head){if(map.has(head.next))returntrue;map.set(head,head.val);head=head.next;}returnfalse;};
  2. 「Floyd 判圈算法」(又称龟兔赛跑算法)、

    Floyd 判圈算法(Floyd’s Tortoise and Hare Algorithm)是一种空间复杂度为 O (1)的算法,用于检测链表、迭代序列等结构中是否存在环,并能找到环的入口点,核心思想是通过快慢指针的移动规律来判断环的存在。

    • 定义两个指针:慢指针(龟)每次移动 1 步,快指针(兔)每次移动 2 步。
    • 若结构中无环:快指针会先到达终点(如链表的null)。
    • 若结构中有环:快慢指针最终会在环内某个节点相遇(因为快指针在环内 “追赶” 慢指针,且步长差为 1,必然会追上)。
    functionhasCycle(head:ListNode|null):boolean{if(!head||!head.next)returnfalse;letslow:ListNode|null=head;letfast:ListNode|null=head.next;while(slow!==fast){if(!fast||!fast.next)returnfalse;slow=slow?.next||null;fast=fast.next.next;}returntrue;}

题目来源:力扣(LeetCode)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 17:38:03

DDR5开启XMPEXPO后不稳定怎么办

嘿,各位装机小伙伴!是不是刚给自己的爱机换上了全新的DDR5内存,兴冲冲地跑进BIOS里打开XMP或EXPO,准备享受一飞冲天的快感,结果……电脑却跟你开起了玩笑?蓝屏、死机、游戏闪退,甚至干脆开不了机…

作者头像 李华
网站建设 2026/4/27 7:44:11

阻抗影响因素深度剖析:从线宽到材质的全面掌控

作为PCB技术运营专家,我经常被问到:“为什么我按照公式计算出的阻抗与实际测量值有差异?”今天,我们就来深入探讨影响PCB走线阻抗的各种因素,帮助你在设计中实现更精确的控制。​线路几何参数:阻抗设计的“…

作者头像 李华
网站建设 2026/4/27 10:47:18

GalTransl:零基础也能轻松完成的Galgame汉化工具

还在为日文Galgame无法理解剧情而烦恼吗?GalTransl作为一款创新的AI翻译工具,专门为Galgame汉化而生,让每个人都能轻松享受汉化乐趣。这款基于大语言模型的自动化翻译解决方案,彻底改变了传统Galgame汉化的复杂流程。 【免费下载链…

作者头像 李华
网站建设 2026/4/25 0:43:19

8倍效率跃升:字节跳动VINCIE-3B开源,视频训练改写图像编辑范式

你还在为AI图像编辑中人物面孔逐渐失真、物体位置莫名漂移而烦恼?字节跳动最新开源的3亿参数模型VINCIE-3B,用视频数据训练出上下文连贯的编辑能力,将多轮修改效率提升8倍,重新定义创意生产工具的技术边界。 【免费下载链接】VINC…

作者头像 李华
网站建设 2026/4/20 17:06:51

别再瞎学大模型了,这份GitHub神级课程火爆全网

最近在 GitHub 上发现了一个超级硬核的大语言模型(LLM)课程,它提供了一套完整的学习路线图和可以直接上手的 Colab 笔记,目标就是带你从入门到精通,无论是想深入研究模型,还是想开发应用,都能找…

作者头像 李华
网站建设 2026/4/24 11:52:49

etcd 配置

name: node1 data-dir: "/etcd/data" #监听URL,用于与其他节点通讯 listen-peer-urls: "http://172.17.217.142:2380" #注意这里是服务器内网ip,通过内网启用的端口服务 # list of URLs to listen on for client traffic listen-…

作者头像 李华