【JAVA】-判断链表是否包含环

2023-05-16

目录

    • 一、问题
    • 二、解题思路
    • 三、解题代码

一、问题

判断链表是否包含环

二、解题思路

判断链表是否包含环属于经典问题了,解决方案也是用快慢指针:
每当慢指针 slow 前进一步,快指针 fast 就前进两步。
如果 fast 最终遇到空指针,说明链表中没有环;如果 fast 最终和 slow 相遇,那肯定是 fast 超过了 slow 一圈,说明链表中含有环。
只需要把寻找链表中点的代码稍加修改就行了:寻找链表中点

三、解题代码

boolean hasCycle(ListNode head) {
    // 快慢指针初始化指向 head
    ListNode slow = head, fast = head;
    // 快指针走到末尾时停止
    while (fast != null && fast.next != null) {
        // 慢指针走一步,快指针走两步
        slow = slow.next;
        fast = fast.next.next;
        // 快慢指针相遇,说明含有环
        if (slow == fast) {
            return true;
        }
    }
    // 不包含环
    return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【JAVA】-判断链表是否包含环 的相关文章

  • 利用Sharding-JDBC 实现Mysql读写分离

    为什么要读写分离 xff1f 读写分离则是将事务性的增 改 删操作在主库执行 xff0c 查询操作在从库执行 一般业务的写操作都是比较耗时 xff0c 为了避免写操作影响查询的效率 xff0c 可以使用读写分离 当然读写分离并不是万能的 x
  • 并发编程的核心问题

    并发编程并不是一项孤立存在的技术 xff0c 也不是脱离现实生活场景而提出的一项技术 相反 xff0c 并发编程是一项综合性的技术 xff0c 同时 xff0c 它与现实生活中 的场景有着紧密的联系 并发编程有三大核心问题 xff1a 分工
  • windows xp管理工具不见了怎么办

    管理工具其实是一个文件夹C ProgramData Microsoft Windows Start Menu Programs Administrative Tools 管理工具里的内容就是这个文件夹里的内容 xff0c 你的内容不见了 x
  • 分享搭建脚手架的一些经验

    印象中有些日子没有写文章了 xff0c 最近一直在放飞自我 xff0c 今天和大家分享的一些在搭建脚手架和编程中的一些实践原则 所有目标都是 清晰架构分层 使用统一的依赖管理 这种方式是基于我多年来的实践 最开始我也将项目类库及其版本随意的
  • POJO、Java Bean是如何定义的

    之前介绍过DTO PO VO的转换 xff0c 在日常开发中还有一些类经常被人叫做POJO xff0c 还有的人叫它们Java Bean 这些概念都是在特定场景下引入 xff0c 用来表明它们的特性的 那这些称呼都是啥意思 xff0c 有啥
  • Maven依赖的作用域你到底用对了没有

    Maven是目前Java开发主要使用的依赖管理构建工具之一 xff0c 但是很多人在引用依赖的时候直接引用坐标 xff0c 而没有考虑依赖的作用范围 xff0c 结果导致出现这样和那样的问题 今天胖哥就来说明一下Maven引用依赖的一个要点
  • 胖哥亲自带你玩转Spring Security OAuth2

    参与Spring Security与OAuth2专栏限定免费学习群 xff0c 请从活动主页扫描第三个专栏学习群二维码入群 xff01 关于21天学习挑战赛活动细节 xff0c 请从点击活动主页了解 作者介绍 码农小胖哥 xff0c Spr
  • 21天,胖哥亲自带你玩转OAuth2

    参与Spring Security与OAuth2专栏限定免费学习群 xff0c 请从阅读原文扫描第三个专栏学习群二维码入群 xff01 关于21天学习挑战赛活动细节 xff0c 请点击 阅读原文了解 作者介绍 码农小胖哥 xff0c Spr
  • StoneDB 为何敢称业界唯一开源的 MySQL 原生 HTAP 数据库?

    近些年 xff0c HTAP 正在受到人们越来越多的关注 xff0c Gartner 在 2014 年提出了 HTAP 这个术语和它的定义 xff1a Hybrid transaction analytical processing HTA
  • 聊聊数据库建表的15个小技巧

    前言 对于后端开发同学来说 xff0c 访问数据库 xff0c 是代码中必不可少的一个环节 系统中收集到用户的核心数据 xff0c 为了安全性 xff0c 我们一般会存储到数据库 xff0c 比如 xff1a mysql xff0c ora
  • 【收藏备用】15大超全应用场景总结,进阶主机安全

    随着业务数字化转型 xff0c 企业的业务变得越来越开放和灵活 xff0c 面临的安全挑战也日益增加 在这种多变 开放的场景下 xff0c 无论安全边界怎么做 xff0c 都无法阻挡黑客打破边界进入企业内部来窃取核心资产 当下安全对抗以及安
  • Java 19 正式发布,改善多线程、并发编程难度

    Java 19 在数分钟前正式发布 xff0c 这是一个非 LTS xff08 长期支持 xff09 版本 该版本的七项功能包括结构化并发 记录模式 外部函数和内存 API 的预览 xff0c 以及对开源 Linux RISC V 指令集架
  • 文末下载方式 | Jetbrains的下一代IDE工具Fleet公测

    之前胖哥介绍了Jetbrains的下一代IDE工具Fleet xff0c 激起了很多同学的兴趣 如果你还不知道Fleet是什么就去看下这一篇文章 Fleet是Jetbrains新出品的一款分布式多语言编辑器和 IDE 它是 IntelliJ
  • Chrome浏览器官方离线安装包下载地址

    1 下列地址任选其一 http viewver coolpage biz chrome php http viewversion coolpage biz chrome php http user336598776 hstn me chro
  • idea如何设置背景图

    写在前面 作为一个Java开发者 xff0c 我想大家肯定都知道IDEA这个编译器吧 xff0c 但是idea默认的背景并不是很美观 xff08 应该说很丑 xff0c 个人感觉哈 xff09 那么如何更换背景呢 xff08 此方法同样适用
  • Spring 6.0已发布,AOT和Native Image成为新亮点

    最新的6 0文档已经更新 Spring Framework 6 0 上周末已经正式发布 接下来Spring的一系列项目都会以6 0为基准发布新版本 xff0c 至此Spring家族正式进入6 0时代 Spring 6 0的基准线为Java
  • 一周发布30多个版本,Spring 6.0开始爆发

    从Spring Framework 6 0正式发布开始 xff0c Spring团队开启了 爆兵模式 xff0c 近一周发布了30多个版本 近期Spring发布计划 基本上每个组件都多版本同时发布 xff0c 18日Spring Data系
  • Spring Boot 3.0 正式发布,这份升级指南必须收藏

    Spring Boot 3 0 现已正式发布 xff0c 它包含了 12 个月以来 151 个开发者的 5700 多次代码提交 这是自 4 5 年前发布 2 0 以来 xff0c Spring Boot 的第一次重大修订 它也是第一个支持
  • 青藤CEO张福:要实现云安全,先要“业安融合”

    在青藤近日举行的 云时代 xff0c 安全变了 云安全高峰论坛上 xff0c 青藤CEO张福在开场致辞中就抛出了这两个所有企业都密切关注的安全问题 xff1a 云时代 xff0c 安全究竟发生了哪些变化 xff1f 安全到底应该怎么做 xf
  • Android Studio 配置使用 Kotlin

    前言 xff1a 在今天 xff08 2017 05 18 xff09 谷歌发布了 xff0c 将Kotlin语言作为安卓开发的一级编程语言 Kotlin由JetBrains公司开发 这个Kotlin xff0c Kotlin 是一个基于

随机推荐