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

环形链表~

题目描述

给你一个链表的头节点 head ,判断链表中是否有环。如果链表中存在环,则返回true。否则,返回false 。

解题思路

采用快慢指针的思想,创建fast和slow一快一慢指针,slow一次走一步,fast一次走两步,如果存在环形结构,那么fast必然先进入环形,slow后进入环形,但是slow早晚也会进入环形,当快慢指针同时进入环形时,假设他们之间的距离差为N,由于slow一次走一步,fast一次走两步,fast每次比slow多走一步,他们之间的距离就会少1,因此,快慢指针必然在环形的某个位置相遇。如果能够相遇,那么必然存在环形结构。如果走着走着,fast指针为空,那么肯定不存在环形结构,因为环形结构不会出现fast为空指针的情况。

实现代码如下:

bool hasCycle(struct ListNode *head) 
{struct ListNode* fast=head;struct ListNode* slow=head;while(fast&&fast->next){fast=fast->next->next;slow=slow->next;if(fast == slow)return true;}return false;
}

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

相关文章:

  • GZ038 物联网应用开发赛题第1套
  • SQL关键字
  • 第三章:人工智能深度学习教程-基础神经网络(第五节-了解多层前馈网络)
  • 如何实现Debian工控电脑USB接口安全管控
  • 开源知识库软件xwiki在Windows下的安装
  • 学习c#的第一天
  • 机器学习实战——《跟着迪哥学Python数据分析与机器学习实战》
  • 开源的全能维护 U 盘工具:Ventoy
  • Redis7学习笔记01
  • Redis的持久化机制和配置
  • 【IP固定】地平线开发板如何实现重启IP地址不变
  • CHATGPT----自然辩证法分析
  • Python测试框架之pytest快速入门
  • CSS 动画特效运用目录
  • css文本溢出省略号点点点
  • MSSQL 配置ORACLE ​链接服务器
  • HiSilicon352 android9.0 适配红外遥控器
  • 0004Java安卓程序设计-springboot基于APP的鲜花商城
  • 对Axios进行封装
  • Python TCP服务端多线程接收RFID网络读卡器上传数据
  • Ubuntu22.04安装MySql
  • 设计模式-桥接模式(Bridge)
  • 库存预占架构升级方案设计-交易库存中心
  • 【redis】ssm项目整合redis,redis注解式缓存及应用场景,redis的击穿、穿透、雪崩的解决方案
  • chatGPT对英语论文怎么润色呢?
  • 【机器学习4】降维
  • 注册商标有助于企业拓展市场渠道
  • 推荐能用ios端磁力下载工具
  • 网页文档阅读的学习笔记
  • mysql图书管理系统(49-56)源代码