面试常问-如何判断链表有环、?
如何判断链表有环
- 题目:
- 解决方案一:
- 解决方案二:
- 解决方案三:
题目:
给你一个链表的头节点 head ,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。
如果链表中存在环 ,则返回 true 。 否则,返回 false 。
示例 1:

输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。
示例 2:

输入:head = [1,2], pos = 0
输出:true
解释:链表中有一个环,其尾部连接到第一个节点。
示例 3:

输入:head = [1], pos = -1
输出:false
解释:链表中没有环。
解决方案一:
可以使用快慢指针法, 分别定义 fast 和 slow指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。
public class Solution {public boolean hasCycle(ListNode head) {ListNode fast = head;ListNode slow = head;// 空链表、单节点链表一定不会有环while (fast != null && fast.next != null) {fast = fast.next.next; // 快指针,一次移动两步slow = slow.next; // 慢指针,一次移动一步if (fast == slow) { // 快慢指针相遇,表明有环return true;}}return false; // 正常走到链表末尾,表明没有环}
}
解决方案二:
通过Set集合去重也能实现,效率不高图一乐
public class Solution {public boolean hasCycle(ListNode head) {Set<ListNode> set=new HashSet<>();while(head!=null){if(set.contains(head))return true;set.add(head);head=head.next;}return false;}
}
解决方案三:
提供一个全新的思路,一次遍历单指针搞定,时间击败100%。每次遍历完一个节点,将它的下一个节点指向初始节点,然后继续遍历: 如果下一节点为空,没有换 如果下一节点的下一指针为root,有环。
public class Solution {public boolean hasCycle(ListNode head) {ListNode root = head;while(head!=null){if(head.next==root) return true;//如果节点的下一节点为初始节点 有环ListNode tem = head; head = head.next;//否则继续遍历下一个节点tem.next = root;//上一个节点的下一节点为初始节点}return false;//走到了尽头,没有换}
}
相关文章:
面试常问-如何判断链表有环、?
如何判断链表有环 题目:解决方案一:解决方案二:解决方案三: 题目: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,…...
基于springboot实现农机电招平台系统项目【项目源码+论文说明】计算机毕业设计
基于springboot实现农机电招平台系统演示 摘要 随着农机电招行业的不断发展,农机电招在现实生活中的使用和普及,农机电招行业成为近年内出现的一个新行业,并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算…...
森林无人机高效解决巡查难题,林区防火掀新篇
山东省某市为了强化森林火灾防范,采用了一项新兴手段——复亚智能无人机森林火情监测系统。这套系统在AI飞行大脑的指挥下,让无人机在空中巡逻,实现了无人机森林防火系统的实施落地。 一、AI大脑如何引领森林无人机高空巡逻? 在山…...
python 爬虫之 爬取网站信息并保存到文件
文章目录 前期准备探索该网页的HTML码的特点开始编写代码存入文件总的程序文件存储效果 前期准备 随便找个网站进行爬取,这里我选择的是(一个卖书的网站) https://www.bookschina.com/24hour/62700000/ 我的目的是爬取这个网站的这个页面的书籍的名称以…...
kubelet漏洞CVE-2020-8559复现与分析
首先下载源码 git clone --branch v1.17.1 --single-branch https://github.com/kubernetes/kubernetes.git 参考 移花接木:看CVE-2020-8559如何逆袭获取集群权限-腾讯云开发者社区-腾讯云...
基于C#实现奇偶排序
这篇就从简单一点的一个“奇偶排序”说起吧,不过这个排序还是蛮有意思的,严格来说复杂度是 O(N2),不过在多核的情况下,可以做到 N2 /(m/2)的效率,这里的 m 就是待排序的个数,当 m100,复杂度为 N…...
Kibana部署
服务器 安装软件主机名IP地址系统版本配置KibanaElk10.3.145.14centos7.5.18042核4G软件版本:nginx-1.14.2、kibana-7.13.2-linux-x86_64.tar.gz 1. 安装配置Kibana (1)安装 [rootelk ~]# tar zxf kibana-7.13.2-linux-x86_64.tar.gz -C…...
【Linux】了解进程的基础知识
进程 1. 进程的概念1.1 进程的理解1.2 Linux下的进程1.3 查看进程属性1.4 getpid和getppid 2. 创建进程3. 进程状态4. 进程优先级5. 进程切换6. 环境变量7. 本地变量与内建命令 1. 进程的概念 一个已经加载到内存中的程序,叫做进程(也叫任务)…...
ES6 — ES14 新特性
一、ES6 新特性(2015) 1. let和const 在ES6中,新增了let和const关键字,其中 let 主要用来声明变量,而 const 通常用来声明常量。let、const相对于var关键字有以下特点: 特性varletconst变量提升✔️全局…...
附录12-time.h的常用方法
目录 1 数据类型 1.1 time_t 1.2 tm 1.3 clock_t 2 相关知识 3 获取从1970年1月1日以来的UTC秒数 time() 4 获取本时区时间字符串 ctime() 5 获取GMT时间的tm gmttime() 6 获取本地时间的tm localtime() 7 记录当前毫秒数 clock() 8 将表示本地时间的tm转…...
C语言公交车之谜(ZZULIOJ1232:公交车之谜)
题目描述 听说郑州紫荆山公园有英语口语角,还有很多外国人呢。为了和老外对上几句,这周六早晨birdfly拉上同伴早早的就坐上了72路公交从学校向紫荆山进发。一路上没事干,birdfly开始思考一个问题。 从学校到紫荆山公园共有n(1<n<20)站路…...
Liunx Ubuntu Server 安装配置 Docker
1. 安装Docker 1.1 更新软件包列表 sudo apt update1.2 添加Docker存储库 sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-a…...
Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务
最简单的有可能是你的服务还没有开启,需要启动服务!!!! 在连接数据库的时候,有时会遇到一个“ORA12514:监听程序当前无法识别连接描述符中请求的服务”的错误,这个错误其实就是数据…...
druid keepAlive 导致数据库连接数飙升
一.背景 应用在执行完某个复杂业务,主要包含20几个查询SQL的操作后,会导致数据库连接池一直升高 druid版本:1.2.11 druid配置文件: spring.datasource.druid.maxActive100 spring.datasource.druid.initialSize20 spring.datas…...
四川竹哲电子商务有限公司深耕抖音电商服务领域
随着数字经济的飞速发展,抖音电商服务成为了越来越多企业的首选。在这个充满机遇与挑战的时代,四川竹哲电子商务有限公司以其卓越的实力和专业的服务,成为了抖音电商服务领域的佼佼者。 一、深耕抖音电商服务领域 作为一家专注于抖音电商服务…...
爬虫中XPath语法四个重要概念及示例
一、根节点与非根节点 1、/div :选择div节点,只有当它是文档的根节点时。 2、//div:选择文档中所有的div节点(包括非根节点)。 二、通过属性选择节点 1、//href:选择带href属性的所有节点。 2、//a[hrefhttp://ba…...
MySQL-03-索引
索引是提高MySQL查询性能的一个重要途径,但过多的索引可能会导致过高的磁盘使用率以及过高的内存占用,从而影响应用程序的整体性能。应当尽量避免事后才想起添加索引,因为事后可能需要监控大量的SQL才能定位到问题所在,而且添加索…...
CSS-长度单位篇
px:像素em:相对元素font-size的倍数rem:相对根字体大小,html标签就是根%:相对父元素计算 注意:CSS中设置长度,必须加单位,否则样式无效!...
自己动手实现一个深度学习算法——七、卷积神经网络
文章目录 1.整体结构2.卷积层1)全连接层存在的问题2)卷积运算3)填充4)步幅5)3维数据的卷积运算6)结合方块思考7)批处理 3.池化层1)池化层的特征 4.卷积层和池化层的实现1)…...
office word 使用笔记
office word 使用笔记 1. 功能1.1 格式快捷键1.2 复选框 2 遇到过的问题2.1 表格标题和表格距离过大 1. 功能 1.1 格式快捷键 复制格式:ctrl shift c 粘贴格式:ctrl shift v 1.2 复选框 方框位置和类型:“插入——高级符号——字体”选…...
HunyuanVideo-Foley效果展示:AI生成气候变迁声音档案(冰川消融/森林火灾)
HunyuanVideo-Foley效果展示:AI生成气候变迁声音档案(冰川消融/森林火灾) 1. 技术背景与镜像介绍 HunyuanVideo-Foley是一款专注于视频生成与音效合成的AI模型,其私有部署镜像针对RTX 4090D 24GB显存进行了深度优化。这个镜像开…...
Go: Under The Hood 完全指南:从零开始深入理解 Go 语言源码架构
Go: Under The Hood 完全指南:从零开始深入理解 Go 语言源码架构 【免费下载链接】under-the-hood 📚 Go: Under The Hood | Go 语言原本 | https://golang.design/under-the-hood 项目地址: https://gitcode.com/gh_mirrors/un/under-the-hood G…...
FPGA数字时钟设计进阶:如何优化你的Verilog代码(以Vivado为例)
FPGA数字时钟设计进阶:如何优化你的Verilog代码(以Vivado为例) 当你的FPGA数字时钟项目已经能够正常运行,却发现代码冗长、维护困难时,是时候考虑代码优化了。本文将带你从初级实现跃升到专业级设计,通过Ve…...
如何用Ai2Psd脚本快速实现AI到PSD的无损转换?终极解决方案揭秘
如何用Ai2Psd脚本快速实现AI到PSD的无损转换?终极解决方案揭秘 【免费下载链接】ai-to-psd A script for prepare export of vector objects from Adobe Illustrator to Photoshop 项目地址: https://gitcode.com/gh_mirrors/ai/ai-to-psd 你是否曾经遇到过这…...
前端表单安全兵法:一个 textarea、一个 select,也能被黑?这份避坑指南请收好
多行文本域 textarea 和下拉框 select 看起来平平无奇,却是前端表单里最容易被攻击、最容易出事故的两个点。 本文从实战的角度讲清楚:怎么写、哪里坑、如何防注入、防越权,并送上可跑的代码与运行结果。 面向开发和测试同学,强烈建议收藏转发。 一、textarea 的正确打开方…...
Text-to-CAD UI:重构机械设计流程的数字化转型方案
Text-to-CAD UI:重构机械设计流程的数字化转型方案 【免费下载链接】text-to-cad-ui A lightweight UI for interfacing with the Zoo text-to-cad API, built with SvelteKit. 项目地址: https://gitcode.com/gh_mirrors/te/text-to-cad-ui 在工程制造领域&…...
别再傻傻分不清了!一文搞懂以太网PHY芯片与MAC之间的MII、RGMII、SGMII接口怎么选
以太网PHY与MAC接口选型指南:从MII到SGMII的工程实践 在嵌入式网络设备设计中,PHY芯片与MAC控制器之间的接口选择往往成为硬件工程师的第一个决策难点。面对MII、RMII、GMII、RGMII、SGMII等多种接口标准,不同的引脚数量、时钟方案和布线要求…...
apple平台玩虾日志-升级到2026.4.10并更换模型为ollama gemma4
1.苹果M4的龙虾 1.1 升级到OpenClaw 2026.4.10 Last login: Sat Apr 11 16:43:44 on ttys000 ➜ .openclaw curl -fsSL https://openclaw.ai/install.sh | bash🦞 OpenClaw InstallerIm not magic—Im just extremely persistent with retries and coping strategies.✓ …...
如何在macOS上实现Xbox 360控制器驱动:5大核心技术深度解析
如何在macOS上实现Xbox 360控制器驱动:5大核心技术深度解析 【免费下载链接】360Controller TattieBogle Xbox 360 Driver (with improvements) 项目地址: https://gitcode.com/gh_mirrors/36/360Controller 对于macOS游戏玩家和开发者而言,原生系…...
HUNYUAN-MT LaTeX科研文档翻译实践:完美保留公式与图表引用
HUNYUAN-MT LaTeX科研文档翻译实践:完美保留公式与图表引用 写论文、投期刊,对很多科研工作者来说,翻译是个绕不过去的坎。尤其是用LaTeX写的文档,里面塞满了复杂的公式、交叉引用和宏命令,直接扔给翻译工具ÿ…...
