验证链表是否有环

2023-11-07

思路

声明一个快指针、一个慢指针,快指针一次走两步,慢指针一次走一步。如果快慢两个指针相遇,说明链表有环。

至于为什么快慢两个指针相遇就说明链表中有环,这个牵扯到数学证明。这里就不论证了,我们直接用结论。

代码实现

初始化的时候,快指针指向 head.next,慢指针指向head。

public static boolean  checkCircle(Node head) {
	if(head == null){ return false;}
	
	Node fast = head.next;
	Node slow = head;
	while(fast != null && fast.next != null){
		fast = fast.next.next;
		slow = slow.next;
		
		if(slow == fast) 
			return true;
	}
	return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证链表是否有环 的相关文章

  • Spring JDBC 模板。如何获取pl/sql脚本的结果变量

    我正在使用 NamedParameterJdbcTemplate 来运行 pl sql 脚本 但我不知道如何获取out变量的值 id out 提前致谢 String script declare begin if myFunc id in
  • 有没有更简单的方法来分割/重建字符串?

    目前我正在使用String split 像这样 String tmp props get i getFullName split String name for int j 1 j lt tmp length j if j gt 1 nam
  • Android:对于具有 LinearLayout 定义的成员的 ListView,上下文菜单不显示?

    我有一个 ListActivity 和 ListView 并且我已将一些数据绑定到它 数据显示得很好 而且我还为视图注册了一个上下文菜单 当我将列表项显示为简单的 TextView 时 它工作正常
  • 仅使用公钥在 HD 钱包中生成以太坊地址 (bitcoinj/web3j)

    我尝试为使用 bitcoinj 库实现的 HD 钱包密钥生成以太坊地址 但我感到困惑 DeterministicSeed seed new DeterministicSeed some seed code here null 1409478
  • 查找所有数组的长度多维数组,Java

    我想使用多维数组来存储数据网格 但是 我还没有找到一种简单的方法来查找长度2nd数组的一部分 例如 boolean array new boolean 3 5 System out println array length 只会输出3 是否
  • 始终等待页面加载到 PageObjects 上

    因此 当出现问题时 我只是创建了一个简单的 selenium JBehave 代码 我将首先发布简化的代码 然后稍后解释我的问题是什么 所以这里我们有一个简单的 AbstractClass 它将在我的 PageObjects 上继承 此类仅
  • Java 表达式树 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • SSLContext 初始化

    我正在看JSSE参考指南 我需要获取一个实例SSLContext为了创建一个SSLEngine 所以我可以使用它Netty以启用安全性 获取实例SSLContext I use SSLContext getInstance 我看到该方法被重
  • 合并和颜色样式不适用于 Apache POI excel 2003 格式

    在 Apache POI 中 我为某些单元格应用了一些样式并合并了这些单元格 当我在 2010 年或 2007 年打开时 它工作正常 但在 2003 年 格式样式消失了 每次保存 2003 Excel 文件之前都会弹出兼容性检查对话框 请参
  • 如何在java中从包含.0的浮点数中删除小数部分

    我只想删除包含的浮点数的小数部分 0 所有其他数字都是可以接受的 例如 I P 1 0 2 2 88 0 3 56666 4 1 45 00 99 560 O P 1 2 2 88 3 567 4 1 45 99 560 有什么方法可以做到
  • 在 java 8 下使用泛型出现类型错误,但在 java 7 下则不然

    我有一段代码可以在 java 7 下编译良好 但不能在 java 8 下编译 这是一个独立的重现示例 我已经采用了显示此问题的真实代码并删除了所有实现 import java util Iterator class ASTNode
  • Java 声音可视化器

    我正在尝试制作一个java声音可视化工具 但我完全不知道如何在实时处理音频后立即从提取的音频中获取字节 我可以将程序与 wav 文件同步 但这不是我想要做的 我想用程序生成声音 然后播放它 而不将其保存在任何地方 谢谢您的帮助 本文可以帮助
  • java中永远不会出现的异常

    我为点和向量编写一个类 我想用它们来计算向量的点和范数 这些是点类和向量类 public class Point public float x y public class MyVector public Point start end 我
  • 使用 Haskell 将函数注入到 Java .class 文件中

    我使用 Haskell 编写了一个 Java 字节码解析器 它工作得很好 然而下一步让我完全难住了 我的 Haskell 程序需要修改 class 文件 以便在执行时 Java 程序打印 输入 此处的方法名称 在执行方法之前 并且 退出 此
  • 用于 Eclipse 的 Resharper [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Eclipse Juno 指标插件

    Eclipse JUNO 版本有哪些 Eclipse 指标插件 我尝试了一些通用指标插件 但没有一个能够在 Eclipse 的 JUNO 版本中正常运行 差点忘了 我们正在使用 Java 作为编程语言 我想要诸如圈复杂度 代码行数 方法长度
  • 如何从 Sublime Text 编辑器调试 Java 应用程序

    有时我正在对相当大的 Java 应用程序进行简单的修复 但我不想打开 Eclipse 来执行此任务 Eclipse 启动时间很长 并且由于该项目是由大量子项目构建的 而这些子项目无论如何都是由 Maven 构建的 因此需要很长时间才能使用
  • Android - 从渲染线程内结束活动

    下午好 我不熟悉 android 中的活动生命周期 并且一直在尽可能地阅读 但我不知道如何以良好的方式解决以下问题 我有一个使用 GLSurfaceView 的活动来在屏幕上绘制各种内容 在这个 GLSurfaceView 的渲染线程中 我
  • Volley 在第一次调用方法时返回 null

    我正在尝试使用 volley 从服务器检索数据 但是当我第一次调用此方法时 我收到服务器的响应 但该方法返回 null 如果我第二次调用它 我会得到最后的响应 public String retrieveDataFromServer Str
  • 需要在没有wsdl的情况下调用soap ws

    我是网络服务的新手 这个网络服务是由 siebel 提供的 我需要调用一项网络服务 我的客户向我提供了以下详细信息 这是 SOAP 对于产品 请使用它作为端点 Request

随机推荐

  • SourceTree 重置提交、合并、撤销、回滚

    SourceTree重置当前分支到此次提交 使用场景 已提交未推送的修改撤销 想把某一次的错误修改全部撤销 当前发布代码有bug需要切到上次提交发布版本 Git中的HEAD解释 使用最新一次提交重制暂存区 git reset HEAD fi
  • 2019-6-26 opencv图像分割(image segmentation)

    图像分割 image segmentation 是图像预处理的重要步骤之一 它的主要目标是将图像划分为不同的区域 这些区域与真实世界中的物体具有一定的关联成分 图像分割的方法大体分为三种 基于阈值的分割 基于边缘的分割和基于区域的分割 理论
  • #pragma pack笔记

    申明 内容来自stackoverflow 仅为方便自己以后忘记了再看时方便而转 https www google com hk url sa t rct j q esrc s source web cd 7 ved 0CEUQFjAG ur
  • JS如何请求接口数据

    在JavaScript中 可以使用AJAX Asynchronous JavaScript and XML 技术与服务器进行异步通信 AJAX允许您通过发送HTTP请求从服务器获取数据 并在无需刷新整个页面的情况下更新部分页面内容 以下是使
  • 什么是inode

    2008 02 28skate 今天一个朋友去面试 考官问了他几个关于算法问题 还有一些概念 其中一个是什么是inode 1 inode 是作甚么的 一个 filesystem 可以粗略地分成 inode table 与 data area
  • 三八节致敬女程序员

    在历史中 日志既可以作为文献资料 又可以作为查案辅证 既可以作为航海记录 又可以作为海难追源 而随着时间的推移 科技的发展 时代逐渐赋予了日志更为广泛的内涵 当人们还在谈论历史日志 航海日志时 计算机时代便已悄然而至 开启了 日志数据 的大
  • Voice Control for ChatGPT 轻松实现使用语音与ChatGPT进行对话。

    缘由 日常生活中 我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的 毕竟相对于文字来说语音就不会显的那么的苍白无力 同时最大的好处就是能解放我们的双手吧 能更快实现两者间的对话 沟通便更高效了 Voice Control for Cha
  • GitHub问题汇总

    问题1 fatal unable to access https github com xxxxx LibreSSL SSL read error 02FFF03C system library func 4095 Operation ti
  • react 重定向Redirect

    如果路径是 跳转到 home
  • 浅谈Java虚拟机工作原理

    网上看了很多写JVM工作原理的大神 也看了些视频 各有各的理解 我整合一下组织自己的语言发表一下理解 首先来一段简单的代码示例 public class Test public static void main String args St
  • 2023年“网络安全”赛项江苏省淮安市选拔赛 任务书

    任务书 一 竞赛时间 共计3小时 二 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 服务器内部信息获取 任务二 网站渗透测试 任务三 Linux系统渗透提权 任务四 Web渗透测试 第二阶段分
  • C#时间格式转换问题(12小时制和24小时制)

    string time Convert ToDateTime date ToString yyyy MM dd HH mm 24小时 string time Convert ToDateTime date ToString yyyy MM
  • @FeignClient服务之间调用Get请求传递对象参数

    使用feign进行服务间调用时 Get请求有多个参数的时候如何使用对象传参呢 第一步 引入pom依赖
  • unity中控制主角的移动和旋转

    在游戏中我们通常要控制玩家的移动和旋转 首先我们说一下移动 移动的本质就是在Update 或LateUpdate 中不断修改物体的position来实现移动 移动的方法有4中 1 transform Translate 第一种方法与直接修改
  • 两列表同时排序,排序后对应元素不变(用到zip打包和解包)

    number是数字 lis是要排的序列 def sort number list number lis 利用 解包方式 将一个排序好的元组 通过元组生成器再转成list list sorted list list zip sorted zi
  • 创造自己的专属免费网盘:Nextcloud

    由于百度网盘速度奇慢无比 而且同步文件夹还需要会员什么的 这对于Nextcloud来说简直就是欺负人啊 所以我们通过搭建一个Nextcloud的私有云 来解决这些问题 目录 简介 快捷安装 配置ssl 启用https 报错 意外处理 一 简
  • less动态样式语言(预处理语言)

    一 使用方法 Less是一门CSS 预处理语言 它扩展了 CSS 语言 增加了变量 Mixin 函数等特性 使 CSS 更易维护和扩展 Less 可以运行在 Node 或浏览器端 1 客户端使用 1 下载less 2 编写项目less文件
  • 红米10A 一键root教程 解锁BL 跳过168小时限制 刷面具root救黑砖刷机 解决无法解锁BL 新版本刷机

    新版本 红米10A 解锁BL 无法秒解锁BL root bootloader 要刷机 线刷救砖 获取Root权限都需要解除bootloader锁 我们称解除刷机限制的这个操作就叫解锁BL 只有解锁BL后 才可以进行刷机 刷Root权限等等一
  • Linux多进程:orphan process——孤儿进程

    孤儿进程orphan process 当父进程比子进程先结束 这样的子进程就成为了孤儿进程 每当出现一个孤儿进程 内核会把孤儿进程的父进程设置为init 托管 init进程会循环wait 孤儿进程结束 然后做剩下的善后 回收资源 因此 孤儿
  • 验证链表是否有环

    思路 声明一个快指针 一个慢指针 快指针一次走两步 慢指针一次走一步 如果快慢两个指针相遇 说明链表有环 至于为什么快慢两个指针相遇就说明链表中有环 这个牵扯到数学证明 这里就不论证了 我们直接用结论 代码实现 初始化的时候 快指针指向 h