链表_环形链表_141

环形链表_141

题目连接:141. 环形链表 - 力扣(LeetCode) (leetcode-cn.com)

解题思想:快慢指针1、定义两个指针,快指针fast、慢指针slow,均初始化为头节点head2、两个指针同时遍历链表,但是fast一次走两个节点,slow一次只走一个节点3、若存在两个指针指向同一个节点,则改链表存在环
/*** 环形链表*/
public class _141_环形链表 {public boolean hasCycle(ListNode head) {//若head为空、或者只有一个节点,则不存在环if (head == null || head.next == null) {return false;}//慢指针ListNode slow = head;//快指针ListNode fast = head.next;/** 因为快指针跑得快,假设不存在环,则快指针一定先到底* 所以,此处以快指针作为while的循环条件*/while (fast != null || fast.next != null) {//slow 后移一个节点slow = slow.next;//fast 后移两个节点fast = fast.next.next;if (slow == fast) {//两者相遇,则一定存在环return true;}}return false;}
}

慢指针走一步,快指针走三步可以吗?

我认为可以的,我是这么想的,把环形的链表想象成一个400米跑道,并且把跑道分为n格,快慢指针同时出发,总有某一时刻,两者会相遇。


如有错误,敬请指正!

LeetCode_链表_环形链表_141相关推荐

  1. java 约瑟夫问题 链表_【链表问题】环形单链表约瑟夫问题

    前言 以专题的形式更新刷题贴,欢迎跟我一起学习刷题,相信我,你的坚持,绝对会有意想不到的收获.每道题会提供简单的解答,如果你有更优雅的做法,欢迎提供指点,谢谢 [题目描述] [要求] 输入:一个环形单 ...

  2. 链表题目----5 相交链表 和 环形链表 和 返回链表开始入环的第一个节点

    相交链表 思路 链表交叉不可能是x型 因为有可能两个链表不等长,所以我们必须让他们从同一起跑位置去起跑 从同一起跑位置出发,依次比较每个结点的地址是否相同 /*** Definition for si ...

  3. php环形链表,PHP环形链表实现方法示例

    本文实例讲述了PHP环形链表实现方法.分享给大家供大家参考,具体如下: 环形链表是一种链式存储结构,类似于单链表.区别是环形链表的尾节点指向头节点. 从而形成一个环, 环形链表是一种非常灵活的存储结构 ...

  4. 面试热点题:环形链表及环形链表寻找环入口结点问题

    环形链表 问题: 给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,评测系统内部使用整数 ...

  5. Algorithms_基础数据结构(02)_线性表之链表_单向链表

    文章目录 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 约瑟夫问题 顺序表VS 链表 链表的定义 链表的特点 常见的链表结 单向链表 单向链表的查找 单向链表的插入 头插 尾部插入 中间 ...

  6. 数据结构_链表_单向链表

    链表(Linked List)是由一连串的结构(称为结点)组成的,其中每个结点都包含指向链中下一个结点的指针. 链表中的最后一个结点包含一个空指针. 链表与数组不同,数组的线性序是由数组的下标决定的, ...

  7. java静态链表_静态链表及其创建(C语言实现)

    <顺序表和链表优缺点>一节,我们了解了两种存储结构各自的特点,那么,是否存在一种存储结构,可以融合顺序表和链表各自的优点,从而既能快速访问元素,又能快速增加或删除数据元素. 静态链表,也是 ...

  8. day03链表基础_移除链表元素_设计链表_反转链表

    链表理论基础 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思). 链表的入口节点称 ...

  9. 算法精解_C语言 链表_单链表(接口定义+类型实现)

    链表可以说是一种最为基础的数据结构.链表由一组元素以一种特定的顺序组合或链接而成,在维护数据的集合时很有用.这一点同我们常用的数组很相似.然而,链表在很多情况下比数组更有优势.特别是在执行插入和删除操 ...

最新文章

  1. 开源APM监控Pinpoint的快速部署和使用
  2. 网络端口的分类和作用
  3. DeepMind开源强化学习环境,灵活可配置,计算资源有限的小型实验室也能用
  4. 用docker安装mysql5-6,并远程连接
  5. SessionListener失败,退出
  6. centos7安装java6_CentOS7.6安装jdk1.8
  7. Java入门 第一季第六章 数组
  8. adams matlab 柔性体,【ADAMS柔性体】柔性体生成流程与注意事项
  9. POJ-1004-Financial Management
  10. 下载地图制作成GST格式(谷歌、百度、高德)导入到Mapinfo中使用
  11. 二分插入排序(折半插入排序)--排序算法(六)
  12. 飞机大战java实训报告_java飞机大战实训报告.docx
  13. [外星与文明]外星人的离开对地球有什么影响?
  14. 你应该知道的十大常见黑客技术
  15. js 计算两个时间的时间差
  16. 资深黄金专家李鑫:独创7套算点理论震惊市场
  17. hdoopHA的文件配置和安装hadoop和安装zookeeper
  18. kingbase8建表
  19. 环境变量用来保存java虚拟机_____环境变量用来存储Java的编译和运行工具所在的路径,而____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。(填英文)...
  20. sqlite数据库查询语句,数据库中是否存在某个表

热门文章

  1. SBIO | 浙大陈云组综述农业中细菌与真菌的互作机制
  2. TensorFlow试用
  3. 手游创业难吗?该怎么做?
  4. ZL15轮式装载机变速器设计 z型提升机图 400吨四柱式油压机图 火电厂堆料机CAD图 万能砂带机 移动皮带机 胶带机 电火花线切割机床封箱机 汽车发动机 曲轴零件图 …方案
  5. (金融)银行贷款的用户增长项目——数据分析
  6. 产品经理书籍推荐(二)
  7. 深度学习交通标志识别项目
  8. 1011. Capacity To Ship Packages Within D Days
  9. 6、远程终端工具安装
  10. swagger2使用