java:如何判断一个链表是否成环,并找到成环的位置

2023-05-16

面试题型:判断一个链表中是否成环

思路:

定义两个快慢指针,让他们一直移动,如果最终快指针=慢指针,这说明在这个链表中必然存在环。

首先,将快指针定义为fast,慢指针定义为slow,每次让快指针移动两个单位,慢指针移动一个单位;在链表中进行遍历。

​ 没有成环的情况下,fast指针一定先移动到终点并返回null

成环的情况下,fast和slow一定在移动中相遇。此时,只需将fast重新回到head位置。接下来,fast指针每次移动一步,slow保持原状,继续遍历。

​ fast和slow指针再次相遇的节点就是成环的位置。

代码实现如下:

public void HashCycleIndex() {
		ListNode fast = head;
		ListNode slow = head;
		while (fast != null && fast.next != null) {
			fast = fast.next.next;
			slow = slow.next;
			if (fast == slow) {
				slow = head;
				while (fast != slow) {
					fast = fast.next;
					slow = slow.next;
				}
				System.out.println(slow.value);
				return;
			}
		}
	}


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java:如何判断一个链表是否成环,并找到成环的位置 的相关文章

  • http的简单实现

    一 http协议的特性 http协议是建立在TCP IP协议之上应用层协议 xff0c 默认端口为80 8080 http协议的的特点是无状态 xff0c 无连接 二 http协议的请求 利用抓包工具httpwatch可以获取报文 http
  • Selenium之css怎么实现元素定位?

    世界上最远的距离大概就是明明看到一个页面元素站在那里 xff0c 但是我却定位不到 xff01 xff01 Selenium定位元素的方法有很多种 xff0c 像是通过id name class name tag name link tex
  • 零基础如何学习计算机语言

    一 认识电脑键盘 1 对于一个还没有接触过计算机的人来说认识键盘是重要的 2 通用的几个常见快捷键 xff1a CTRL 43 C 复制 CTRL 43 V 粘贴 CTRL 43 A 全选 CTRL 43 X 剪切 CTRL 43 S 保存
  • 如何用python连接Linux服务器

    1 安装paramiko库 pip install paramiko 2 使用paramiko库连接linux 导入库 import paramiko 创建一个sshclient对象 ssh 61 paramiko SSHClient 允许
  • 包装类

    注意点 包装类是final的类 包装类对象是不变的 与字符串类似 不变模式 共有8种包装类 int Integer long Long byte Byte short Short float Float double Double bool
  • 数据库和缓存如何保证一致性?

    先更新数据库 xff0c 还是先更新缓存 xff1f 有了这个想法后 xff0c 就准备开始着手优化服务器 xff0c 但是挡在在他前面的是这样的一个问题 由于引入了缓存 xff0c 那么在数据更新时 xff0c 不仅要更新数据库 xff0
  • 一名高级的Javaer,应该了解的 MYSQL 高级知识点

    SQL查询流程 1 通过客户端 服务器通信协议与 MySQL 建立连接2 查询缓存 xff0c 这是 MySQL 的一个可优化查询的地方 xff0c 如果开启了 Query Cache 且在查询缓存过程中查 询到完全相同的 SQL 语句 x
  • Python循环语句

    1 for循环 1 for in range xff08 xff09 简单的for循环代码 xff1a for i in range 5 print i 输出的便是0 4形成一列 xff0c 这里rang xff08 5 xff09 xff
  • 【Android自定义注解】BindView

    注意 xff1a 定义的控件变量必须是public xff0c 否则报错 1 添加类 package com example zhujie import java lang annotation Retention import java
  • 数据可视化——(提示框插件)

    提示框插件有很多 xff0c 不同的框架中选择的也不一样 本文主要分享toastr插件总结它的使用步骤如下 xff1a 使用步骤 xff1a 加载 jqury js toastr css 和 toastr js 文件 全局配置 为方便 xf
  • 文章五:Python 网络爬虫实战:使用 Beautiful Soup 和 Requests 抓取网页数据

    一 简介 本篇文章将介绍如何使用 Python 编写一个简单的网络爬虫 xff0c 从网页中提取有用的数据 我们将通过以下几个部分展开本文的内容 xff1a 网络爬虫的基本概念Beautiful Soup 和 Requests 库简介选择一
  • Android Studio编译无错,但在模拟器上无法运行App

    今天在学习郭霖老师的 第一行代码 第三版时碰到一个问题 xff0c 明明运行无错 xff0c 却无法在模拟器上正常运行 一开始提示说 Waiting for all target devices to come online xff0c 在
  • 突破CloudFlare五秒盾付费版

    使用的第三方库 cloudscraper 可以绕过免费版的五秒盾 但遇到付费版就无能为力了 最近在爬币圈的网站 xff0c 其中有一个网站叫做 xff1a Codebase 1 使用的就是付费版的 CloudFlare 五秒盾 当我们使用
  • CentOS-7 配置 SSH 远程登录

    CentOS 7 配置 SSH 远程登录 CentOS 配置 SSH 远程登录一 环境二 配置网络1 检查网络状态2 下载 net tools 工具3 检查主机与虚拟机是否正常连通 三 SSH 配置1 检查 CentOS 系统是否已经安装了
  • Linux中如何使用systemctl进行服务的管理?

    一 运行级别的分类 runlevel 运行级别0 xff1a 系统停机状态 运行级别1 xff1a 单用户工作状态 xff0c root权限 xff0c 用于系统维护 xff0c 禁止远程登陆 运行级别2 xff1a 多用户状态 没有NFS
  • Hibernate的配置

    Hibernate 的配置 1 创建工程 xff1b 2 导入 Jar 包 xff1b 3 写 Hibernate 配置文件 xff08 hibernate cfg xml xff09 a 数据库连接信息 b 映射文件包含配置 4 创建表和
  • vue3 axios

    Axios 是一个基于 promise 网络请求库 xff0c 作用于node js 和浏览器中 简介 Axios 是一个用于浏览器和Node的基于承诺的简单HTTP客户端 它提供了一个易于使用的库 xff0c 占地面积小 它还有一个可扩展
  • Linux系统四种安软方式

    Linux软件安装方式 本地安装 把需要的软件压缩包下载到linux主机 xff0c 在主机上直接解压启动即可完成本地安装 xff0c 即绿色版安装 把需要的rpm软件包下载到linux主机 xff0c 在主机上使用rpm命令完成本地安装
  • 关于vscode安装扩展插件提示:获取扩展失败,XHR error

    在我们安装vscode扩展插件时 xff0c 出现报错 xff1a error while fetching extensions XHR error 搜了很多网友的解决方案 xff0c 比如修改网络代理设置 xff0c 修改hosts文件
  • simulink模块,提供xpctarget下驱动源码

    simulink模块 xff0c 提供xpctarget下驱动源码 77999632700099250风中的蜗牛

随机推荐

  • SQL SERVER创建字段注释

    第一种方法是用SQL SERVER的管理工具 表设计中的列属性自带说明 xff0c 填写会自动生成注释 第二种方法 如果在navicat等工具上无法可视化创建注释的 xff0c 需要执行语句 EXEC sys sp addextendedp
  • Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名

    您好 xff0c 欢迎关注我的专栏 xff0c 本篇文章是关于 Flutter 的系列文 xff0c 从简单的 Flutter 介绍开始 xff0c 一步步带你了解进入 Flutter 的世界 你最好有一定的移动开发经验 xff0c 如果没
  • Android 11 Settings源码入门,我就不信你还听不明白了

    前言 曾听过很多人说Android学习很简单 xff0c 做个App就上手了 xff0c 工作机会多 xff0c 毕业后也比较容易找工作 这种观点可能是很多Android开发者最开始入行的原因之一 在工作初期 xff0c 工作主要是按照业务
  • Linux破解密码

    1 重启虚拟机 xff0c 在引导界面按 e xff08 按鼠标左键 xff0c 用键盘控制上下 xff09 xff0c 进入类界面 xff0c 把中间的ro改为 rw rd break 2 按住Ctrl 43 x xff0c 进入紧急界面
  • “移除”虚拟机和“从磁盘中删除”虚拟机的区别

    1 二者的区别 xff1a 移除 虚拟机操作只是在虚拟机上删除了 xff0c 并没有在Windows系统中删除相关文件 xff0c 是部分删除 xff1b 而 从磁盘中删除 是既在虚拟机上删除了 xff0c 也删除了Windows系统中的相
  • Linux常用命令

    一条命令的结构 xff1a 用户名 64 主机名 工作目录 提示符 lt 命令 gt 选项 参数1 参数2 一 文件操作类命令 1 touch命令 xff1a 用于建立文件或更新文件的修改日期 1 语法格式 xff1a touch 参数 文
  • 内部类

    链接 xff1a https www nowcoder com questionTerminal 48524c47dd924887be6684b17175fa40 1 为什么使用内部类 使用内部类最吸引人的原因是 xff1a 每个内部类都能
  • CentOS 8本地离线YUM源的配置

    1 准备好CentOS 8相同版本号的系统镜像文件 2 添加光驱硬件 xff0c 在光驱中调用iso镜像文件 xff08 具体操作 xff1a 先打开设置里面的CD DVD xff0c 再点击使用ISO镜像文件 xff0c 选择浏览会跳转到
  • Linux操作系统:管理用户和组

    任务一 xff1a Linux用户类型和组群 1 Linux系统下的用户账户分为三种 超级用户 xff08 root xff09 xff1a 拥有系统的最高权限 xff0c 可以不受限制的对任何文件和命令进行操作 xff0c 对系统具有绝对
  • 在CentOS_8中添加新的硬盘

    添加新硬盘的具体步骤 xff1a 第一步 xff1a 第二步 xff1a 第三步 xff1a xff08 注意 xff1a 这里选择 SATA A xff0c 其优点是可随时使用 xff0c 无需重启 xff1b 而 SCSI S 需要重启
  • Linux下生产者消费者模型

    Linux下生产者消费者模型 一 什么是生产者消费者模型二 代码实现三 运行结果与修改 一 什么是生产者消费者模型 生产者消费者模型就是通过一个容器来解决生产者和消费者的强耦合问题 生产者和消费者彼此之间不直接通讯 xff0c 而通过阻塞队
  • 开发一个支持跨平台的 Kotlin 编译器插件

    前言 前面简单介绍了一下Kotlin编译器插件是什么 xff0c 以及如何一步一步开发一个Kotlin编译器插件 xff0c 但是之前开发的编译器插件是通过修改字节码的方式来修改产物的 xff0c 只支持JVM平台 今天主要在此基础上 xf
  • 逆变器原理

    逆变器是把直流电转变为交流电的一种装置 它一般包括逆变桥 控制逻辑和滤波电路组成 主要是把各种直流源转变为交流供交流负载使用 xff0c 一般直流源有蓄电池 干电池 太阳能电池等 xff0c 可以应用到不间断电源 UPS 太阳能发电转换等
  • Linux网络编程

    目录 网络编程基础 Internet历史 TCP IP协议基本概念 网络体系结构 TCP IP体系结构 TCP IP协议知识要点 TCP协议和UDP协议 网络编程预备知识 基于TCP协议的网络编程案例 基于UDP协议的服务器客户端编写 1
  • Android12动态控制SystemUI状态栏和导航栏

    要实现一个需求 在Android12上实现动态控制状态栏和导航栏的显示及隐藏 基本思路 在frameworks base 中增加想要的显示控制 在Settings增加开关按钮进行功能出发 一 在framework base 增加系统属性 用
  • Java—反射详解

    1 反射概念 反射本质就是反着来 反射 Reflection 是Java的特征之一 xff0c 它允许运行中的Java程序获取自身的信息 xff0c 并且可以操作类或对象的内部属性 通俗的来讲就是 xff1a 通过反射机制 xff0c 可以
  • png图片损坏打不开如何修复?

    png格式是我们生活中常用的格式 xff0c 可以用于存储不同的网络图形 数码照片和背景透明的图像 但常用的PNG文件格式有时也会有损坏的 xff0c 在这种情况下 xff0c 要保持冷静 xff0c 发现后先不要去尝试打开这些图片 xff
  • cookie与session

    a 什么是cookie 浏览器在访问服务器时 xff0c 服务器将一些数据以set cookie 消息头 的形式发送给浏览器 浏览器会将这些数据保存起来 当浏览器再次访问服务器时 xff0c 会将这些数据以cookie消息头的形式发送给服务
  • GithubDNS解析配置

    hosts文件位置 xff1a Windows 系统 xff1a C Windows System32 drivers etc hosts 复制以下代码 xff1a GitHub520 Host Start 140 82 114 26 al
  • java:如何判断一个链表是否成环,并找到成环的位置

    面试题型 xff1a 判断一个链表中是否成环 思路 xff1a 定义两个快慢指针 xff0c 让他们一直移动 xff0c 如果最终快指针 61 慢指针 xff0c 这说明在这个链表中必然存在环 首先 xff0c 将快指针定义为fast 慢指