当前位置: 首页 > news >正文

环形链表(判断链表中是否有环)的讲解

一:题目

二:思路讲解

1:采用快慢指针的方法,一个fast指针一次移动两个节点,一个slow指针一次移动一个节点。

2:两个指针从头指针开始往后遍历,如果fast指针或者fast->next 有一个为空,那就代表这不是带环链表。

fast指针为空,代表这是一个偶数个节点的链表,fast1,3,5这样的移动,最后一次会到尾节点的下一个节点,所以fast为空。

 fast->next指针为空,代表这是一个奇数个节点的链表,fast1,3,5这样的移动,最后一次会到尾节点,所以它的next为空。

以上这两种情况都代表这个链表不带环

3:当slow和fast遍历的时候,如果fast和slow相等,就代表该链表带环,因为以上两种情况slow和fast永远不会相等。(前面的直线代表进入环前面的节点,后面的圆圈就代表入环后的所有节点)

而相等只会出现在slow和fast指针两个都进入了环,彼此开始进行追击,总有一个节点,二者会相遇,即slow=fast。

代码展示 :

 

http://www.lryc.cn/news/347153.html

相关文章:

  • NLP(14)--文本匹配任务
  • MySQL——系统变量
  • 「 网络安全常用术语解读 」漏洞利用预测评分系统EPSS详解
  • 理解python中的Iterator 和 Iterable 迭代器和可迭代对象
  • C语言实现动态加载.so动态库,使用,错误捕获以及卸载
  • 《动手学深度学习》V2(11-18)
  • web前端之excel转pdf、小黄人发送请求、base64、jspdf、xlsx
  • 【面试题】音视频流媒体高级开发(2)
  • 数据与结构--堆
  • Github的使用教程(下载项目、寻找开源项目和上传项目)
  • Linux-线程概念
  • js的桶排序
  • 解决ubuntu无法上网问题
  • 使用nvm管理多版本node.js
  • 推导 模型矩阵的逆转置矩阵求运动物体的法向量
  • 定时任务的几种实现方式
  • docker部署springboot+Vue项目
  • Llama3-Tutorial(Llama 3 超级课堂)-- 笔记
  • 【备战软考(嵌入式系统设计师)】12 - 嵌入式系统总线接口
  • 【一刷《剑指Offer》】面试题 18:树的子结构
  • 17 M-LAG 配置思路
  • 深入探索CSS3 appearance 属性:解锁原生控件的定制秘密
  • C# 集合(五) —— Dictionary类
  • Java 函数式接口BiConsumer
  • SWERC 2022-2023 - Online Mirror H. Beppa and SwerChat (双指针)
  • 四川汇昌联信:拼多多运营属于什么行业?
  • C++11 特性
  • 二、使用插件一键安装HybridCLR
  • 【江科大STM32学习笔记】新建工程
  • C++小程序:同一路由器下两台计算机简单通信(1/2)——服务器端