LeetCode 141.环形链表

news2025/1/24 14:54:15

在这里插入图片描述

文章目录

  • 💡题目分析
  • 💡解题思路
  • 🔔接口源码
  • 💡深度思考
    • ❓思考1
    • ❓思考2

在这里插入图片描述
题目链接👉 LeetCode 141.环形链表👈

💡题目分析

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

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

💡解题思路

快慢指针:
定义两个指针,一个快指针、一个慢指针,让快指针一次走一步,慢指针一次走两步,如果存在环的话,快指针会先进环,一直在环中循环的走,等到慢指针也进入环中循环,快指针追击慢指针,最后它们一定会相遇(因为快慢指针的差距步是一步),就可以判断出该链表存在环;如果不存在环的话,快指针会走到头结束。

👇过程图解👇
在这里插入图片描述

🔔接口源码

//快慢指针
bool hasCycle(struct ListNode *head) 
{
    struct ListNode* fast = head, *slow = head;
    while(fast && fast->next)
    {
        slow = slow->next;
        fast = fast->next->next;

        if(slow == fast)
        {
            return true;
        }
    }

    return false;
}

在这里插入图片描述

💡深度思考

❓思考1

slow一次走一步,fast一次走两步,slow和fast一定会相遇吗?

fast会先进环,slow会后进环,假设slow进环时,slow和fast之间的距离为N,slow进环以后,fast开始追击slow,slow每走1步,fast每走2步,他们之间距离缩小1。
追击过程中,他们之间的距离变化:N,N-1,N-2,… ,2,1,0

在这里插入图片描述
所以一定会相遇!

❓思考2

slow一次走一步,fast一次走三步,slow和fast一定会相遇吗?

fast会先进环,slow会后进环,假设slow进环时,slow和fast之间的距离N,slow进环以后,fast开始追击slow,slow每走1步,fast每走3步,他们之间距离缩小2
在这里插入图片描述
由于环的长度不同,追击过程中,他们之间的距离变化会有两种情况(奇/偶):
在这里插入图片描述
所以不一定会相遇!

🥰希望烙铁们能够理解欧!

总结🥰
以上就是本题讲解的全部内容啦🥳🥳🥳🥳
本文章所在【C/C++刷题系列】专栏,感兴趣的烙铁可以订阅本专栏哦🥳🥳🥳
前途很远,也很暗,但是不要怕,不怕的人面前才有路。💕💕💕
小的会继续学习,继续努力带来更好的作品😊😊😊
创作写文不易,还多请各位大佬uu们多多支持哦🥰🥰🥰

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/894686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

XDocReport文书生成总结

最近弄一个业务需要搞很多的word文档导出,供前端下载。之前的实现方式一般是先把word转成XML格式,然后赋值变量,这种方式虽然可行,但是遇到那种长篇且变量又多的文档,就很让人头大,密密麻麻的一堆代码&…

Spring-3-Spring AOP概念全面解析

今日目标 能够理解AOP的作用 能够完成AOP的入门案例 能够理解AOP的工作流程 能够说出AOP的五种通知类型 一、AOP 1 AOP简介 思考:什么是AOP,AOP的作用是什么? 1.1 AOP简介和作用【理解】 AOP(Aspect Oriented Programming)面向切面编程,一…

Windows系统修改域名DNS指向两种方式

一、直接打开对应文件进行修改 1、进入hosts文件目录:C:\Windows\System32\drivers\etc 2、右键打开HOSTS文件进行编辑,将需要对应的域名和IP地址进行配置 编写完成后 Ctrl s 进行保存即可。 二、使用DOS命令进行修改 1、按住键盘win键 r 打开命令…

设计师必备的5个PNG免抠素材网站,简直不要太好用~

广大设计师们是不是经常要用免抠素材的时候网上找的质量差,还要各种付费才能使用,最后只能打开PS慢慢的扣,真的很费时间。本期我就给大家推荐5个高质量、免费的免抠素材网站,有需要的朋友们赶紧收藏。 菜鸟图库 https://www.suc…

2021年3月全国计算机等级考试真题(C语言二级)

2021年3月全国计算机等级考试真题(C语言二级) 第1题 算法空间复杂度的度量方法是() A. 算法程序的长度 B. 算法所处理的数据量 C. 执行算法所需要的工作单元 D. 执行算法所需要的存储空间 正确答案:D 第2题 下列叙…

wangEditor修改节点数据

前言 wangEditor简介 wangEditor 是一款基于 JavaScript 和 jQuery 的开源富文本编辑器,具有简单易用、功能丰富的特点。它提供了一整套的富文本编辑功能,包括文字样式设置、插入图片、插入表格、插入链接、代码块等。wangEditor 支持多种浏览器&#x…

大数据时代下的数据中心运维管理

摘要:本文将从数据中心运维管理的角度,联系现实情况,对运维管理进行研究,期望通过本项目的研究,显著提升数据中心运维治理的整体质量。这样,才能充分发挥大数据的价值,并推动企业加速发展。 关…

将nginx内存池代码单独编译运行,了解nginx内存池工作原理,附代码

初识nginx——内存池篇 https://www.cnblogs.com/magicsoar/p/6040238.html 为了自身使用的方便,Nginx封装了很多有用的数据结构,比如ngx_str_t ,ngx_array_t, ngx_pool_t 等等,对于内存池,nginx设计的十分精炼,值得我…

揭秘亚马逊广告运作:了解逻辑,事半功倍的广告成功!

亚马逊广告的多重形式亚马逊为卖家提供了多种广告形式,用于在平台上展示并推广产品。以下是亚马逊广告的主要形式: 1.Sponsored Products: 这是常见的广告类型,允许产品在搜索结果和产品页面中显示。广告与自然搜索结果相似&…

23款奔驰GLE450豪华型桃木方向盘,提升方向盘握感

桃木是目前国内各级车型中最为主流的木饰,虽然看起来一样,但是多数低端车型中配备的并非实木,而是由聚酯材料制成的仿桃木。其实我们这里所说的“桃木”也并非我们所熟知的那个可以结桃子的果树,而是胡桃木或是核桃木。胡桃木原产…

算法通关村第八关——轻松搞定翻转二叉树

二叉树有很多经典算法题,今天我们就来看一下二叉树里的翻转问题。 力扣226,给了一棵二叉树,要将二叉树整体翻转。 分析:观察图中翻转前后的二叉树,我们不难发现,翻转过程中,只需要把每一个节点的左右子节点…

13. Vuepress2.x 部署站点的基础路径从配置文件中读取

收到需求,站点要部署到 非根路径 下,且将来会根据 版本号 区分不同的基础路径。需要从统一的文件中读取,方便其它 js 文件和 config.js 配置统一读取。 目录 docs\.vuepress\public\cfg\ 下新建文件 version.js,内容如下 const P…

cmake扩展(5)——file命令排除部分文件

在cmake中可以使用file命令获取需要的文件&#xff0c;并且支持正则/通配符&#xff0c;使用起来还是很方便的。 #语法file({GLOB | GLOB_RECURSE} <out-var> [...] [<globbing-expr>...])#example file(GLOB_RECURSE SOURCES "src/*.h" "src/*.cp…

如何计算 SDK 占用的 CPU 算力值(DMIPS)

什么是 DMIPS &#xff1f; 网上搜了些 DMIPS 的相关材料&#xff0c;知道它是用来评价 CPU 运算能力的一个指标。其中在知乎上有人介绍这个概念&#xff0c;是自动驾驶芯片性能常用的评价指标&#xff08;自动驾驶芯片性能评价指标:DMIPS,TOPS - 知乎&#xff09;。 如何计算…

CSS如何将浏览器文字设置小于12px

CSS如何将浏览器文字设置小于12px 使用transform: scale进行缩放 transform: scale(0.8);<div><p class"first">第一段文字</p><p class"second">第二段文字</p> </div>.first {font-size: 12px; }.second {font-si…

SeleniumIDE用例录制

1、录制回放方式的稳定性和可靠性有限 2、只支持 Firefox、Chrome 3、对于复杂的页面逻辑其处理能力有限 环境准备 Chrome 插件&#xff1a;https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd Firefox 插件&#xff1a;Selenium IDE …

Java课题笔记~ SpringBoot简介

1. 入门案例 问题导入 SpringMVC的HelloWord程序大家还记得吗&#xff1f; SpringBoot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化Spring应用的初始搭建以及开发过程 原生开发SpringMVC程序过程 1.1 入门案例开发步骤 ①&#xff1a;创建新模块&#…

==和equals方法之间的区别,hashcode的理解

==和equals方法之间的区别 字符串有字符串常量池的概念,本身就推荐使用String s="字符串", 这种形式来创建字符串对象, 而不是通过new关键字的方式, 因为可以把字符串缓存在字符串常量池中,方便下次使用,不用遇到new就在堆上开辟一块新的空间 有一对双胞胎姐妹,晓苑…

[bug] 记录version `GLIBCXX_3.4.29‘ not found 解决方法

在使用mediapipe 这个库的时候&#xff0c;首次使用出现 GLIBCXX_3.4.29’ not found 错误&#xff0c; 看起来是安装mediapipe 的时候自动升级了 matplotlib 这个库&#xff0c;导致依赖的 libstd.so 版本不满足了&#xff0c;GLIBCXX_3.4.29 is an object from libstdc.so.…

万宾燃气管网监测解决方案,守护城市生命线安全

方案背景 城市燃气管网作为连接天然气长输管线与天然气用户的桥梁&#xff0c;担负着向企业和居民用户直接供气的重要职责。随着城市燃气需求的急剧增加&#xff0c;城市燃气管网规模日趋庞大&#xff0c;安全隐患和风险也随之增加。目前&#xff0c;我国燃气管网的运行仍存在…