news 2026/4/17 6:19:31

【每天学习一点算法 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/18 2:05:09

同城配送系统:基于 Spring Boot+Redis+RabbitMQ 构建

在电商行业蓬勃发展的当下,同城配送作为连接商家与消费者的关键环节,其系统的稳定性、响应速度和数据一致性直接影响用户体验与企业运营效率。传统同城配送系统常面临订单峰值处理能力不足、配送状态实时同步延迟、数据丢失风险高等问题。本文将详细介绍…

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

33、文本编辑器nvi与Elvis的特性及使用指南

文本编辑器nvi与Elvis的特性及使用指南 在文本编辑领域,有许多优秀的编辑器可供选择。本文将详细介绍nvi和Elvis这两款编辑器的特点、功能以及使用方法。 1. nvi编辑器 nvi是一款简洁实用的文本编辑器,具有一些独特的功能。 1.1 增量搜索 在nvi中启用增量搜索功能,可使…

作者头像 李华
网站建设 2026/4/18 3:45:22

39、Vile与Vi/Vim编辑器使用指南

Vile与Vi/Vim编辑器使用指南 1. Vile编辑器的特色功能 Vile是一款类似Emacs的编辑器,具有许多实用的功能。 1.1 设置主要模式 可以通过特定命令让Vile使用特定的主要模式。例如,使用 :setl cmode 命令可以将其设置为“C”模式,但该命令不会更新语法高亮显示。若要同时…

作者头像 李华
网站建设 2026/4/18 3:46:53

LLaMA-Factory:打造属于你的大模型指令微调工厂

近年来,大语言模型(LLM, Large Language Model)的发展势如破竹。从最初的 GPT、BERT 到如今的 LLaMA、Qwen、GLM 等,开源与闭源的模型体系不断涌现。如何在这些强大的通用模型之上,快速地适配特定业务场景,…

作者头像 李华
网站建设 2026/4/18 3:49:21

MoE架构视频生成终极指南:从技术原理到实战部署

MoE架构视频生成终极指南:从技术原理到实战部署 【免费下载链接】Wan2.2-T2V-A14B-Diffusers 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-T2V-A14B-Diffusers 阿里巴巴达摩院推出的Wan 2.2模型正在重新定义视频生成技术的边界。这款基于混…

作者头像 李华
网站建设 2026/4/17 17:05:07

btpanel-v7.7.0离线部署实战指南

在当今企业级服务器管理场景中,网络隔离环境已成为常态。无论是金融行业的合规要求,还是制造企业的生产网络隔离,传统依赖在线安装的宝塔面板部署方式往往面临严峻挑战。本文将深度解析如何在没有外网连接的环境下,成功部署btpane…

作者头像 李华