当前位置: 首页 > news >正文

[C/C++]数据结构 链表OJ题:环形链表(如何判断链表是否有环)

题目描述:

给你一个链表的头节点 head ,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。

如果链表中存在环 ,则返回 true 。 否则,返回 false 。


示例:

提示:

  • 链表中节点的数目范围在范围 [0, 104] 内
  • -105 <= Node.val <= 105
  • pos 的值为 -1 或者链表中的一个有效索引

解题思路:

        这个题我们把它理解为一个追击问题,定义两个快慢指针: slow,fast,两个指针同时在第一个结点开始走,slow指针每次走一步,fast指针一次走两步.

        如果链表有环,当fast走到入环点,slow走到了起始到入环点的一半.继续走,当slow走到如环点时,fast已经在环内的某个位置了,假设slow与fast之间的距离为N

这时每走一步,fast与slow的距离就会减小1,当N减为0时就代表fast追到了slow,两指针相遇就说明链表有环

        如果链表无环,则两指针就不会遇到

我们画个图理解一下:

代码实现:


bool hasCycle(struct ListNode *head) {struct ListNode *slow=head;struct ListNode *fast=head;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;if(slow==fast)return true;}return false;
}

相关文章:

[C/C++]数据结构 链表OJ题:环形链表(如何判断链表是否有环)

题目描述: 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…...

c#流程控制

c#分支语句 namespace ConsoleApp1 {internal class Program{static void Main(string[] args){Console.WriteLine("请输入学生成绩");string sConsole.ReadLine();int aint.Parse(s);//将字符类型强制转换为int类型if (a > 90){ Console.WriteLine("成绩优…...

基于SSM的学生二手书籍交易平台的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…...

xcode-工程设置

build settings Deployment Postprocessing 用于指定是否在构建完成后进行一些部署相关的处理。 当你在 Xcode 中构建你的应用程序时&#xff0c;构建设置决定了一些行为&#xff0c;其中一项是是否启用 Deployment Postprocessing。这个选项的主要作用是在构建完成后&#…...

Milvus Cloud——LLM Agent 现阶段出现的问题

LLM Agent 现阶段出现的问题 由于一些 LLM&#xff08;GPT-4&#xff09;带来了惊人的自然语言理解和生成能力&#xff0c;并且能处理非常复杂的任务&#xff0c;一度让 LLM Agent 成为满足人们对科幻电影所有憧憬的最终答案。但是在实际使用过程中&#xff0c;大家逐渐发现了通…...

百度智能云千帆大模型平台再升级,SDK版本开源发布!

SDK 前言一、SDK的优势二、千帆SDK&#xff1a;快速落地LLM应用三、如何快速上手千帆SDK1、SDK快速启动快速安装平台鉴权如何获取AK/SK以“Chat 对话”为调用示例 2. SDK进阶指引3. 通过Langchain接入千帆SDK为什么选择Langchain 开源社区 前言 百度智能云千帆大模型平台再次升…...

按键精灵中的数据类型转换

按键精灵中的数据类型有&#xff1a;整型、浮点数、布尔类型、字符串、数组这几种类型&#xff0c;主要的转换方式有以下这几种方式&#xff1a; 1. 转布尔类型 CBool Dim A 5 Dim B CBool(A)TracePrint B // true 2. 转字符串类型 CStr Dim MyInteger 437Dim MyStr…...

Golang Gorm 连接数据库

连接数据库 为了连接数据库&#xff0c;你首先要导入数据库驱动程序。例如&#xff1a; import _ "github.com/go-sql-driver/mysql"import ("gorm.io/driver/mysql""gorm.io/gorm" ) GORM 已经包含了一些驱动程序&#xff0c;为了方便的去记住…...

[C++随笔录] 红黑树

红黑树 红黑树的特点红黑树的模拟实现红黑树的底层结构insert的实现实现思路更新黑红比例的逻辑insert的完整代码 insert的验证 源码 红黑树的特点 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是 Red或 Black。…...

C 和 C++ 可变参数介绍

文章目录 前言概念C 的可变参数参数列表 #va_list 4组宏 C 的可变参数参数列表 #va_list 4组宏初始化列表 initializer_list<> 类模板可变参数模板 总结参考资料作者的话 前言 C 和 C 可变参数介绍。 概念 可变&#xff08;长&#xff09;/不定&#xff08;长&#xff…...

【Git】gui图形化界面的使用、ssh协议以及idea集成Git

目录 gui图形化界面的使用 介绍 特点 gui图形的使用 ssh协议 介绍 步骤及概念 ssh协议的使用 配置公钥 idea集成Git idea配置git IDEA安装gitee IDEA中登入Git ​编辑 项目分享 克隆分享的项目 ​编辑 ​编辑 idea上传远程 gui图形化界面的使用 介绍 GUI&#xff08…...

C语言之文件操作(详解版)

不知不觉我们已经学到C语言的文件操作部分了&#xff0c;这部分内容其实很有意思&#xff0c;因为它可以直接把我们代码中的数据写入硬盘&#xff0c;而不是我们关掉这个程序&#xff0c;代码就没有了&#xff0c;让我们开始学习吧&#xff01; 目录 1.为什么使用文件 2.什么…...

解决mac 下 docker-compose 不是命令

docker-compose docker: ‘compose’ is not a docker command #6569 解决方法&#xff1a; mkdir -p /usr/local/lib/docker ln -s /Applications/Docker.app/Contents/Resources/cli-plugins /usr/local/lib/docker/cli-plugins参考&#xff1a; https://github.com/docker/…...

test_sizeof

test_sizeof //结论&#xff1a; // sizeof(arrU8)得到的大小是u8类型数组的 **定义大小**&#xff0c;在 初始化的时候用 // strlen(arrU8)得到的大小是u8类型数组的 **实际大小**&#xff0c;在 复制的时候用 //sizeof((char*)arrU8)&#xff0c;把一个u8 * 转成 char *&…...

100+ Windows运行命令大全,装B高手必备

操作电脑关闭、重启、注销、休眠的命令细则: 用法: shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]] 没有参数 显示帮助。这与键入 /? 是一样的。…...

iOS 设置图标和upload包时显示错误

右键-show in finder-AppIcon.appiconset-然后替换图片 然后遇到个问题 就是图片不能有alpha [Xcode]应用图标&#xff1a;ERROR ITMS-90717: “Invalid App Store Icon. The App Store Icon in the asset catalog in x… 具体操作&#xff1a;只需确保【AppIcon】图片集中不…...

软件工程的舞台上,《人月神话》的美学纷飞

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天给大家分享一本书&#xff1a;《人月神话》——软件工程的经典之作。 《人月神话》是一本具有深远影响力的软件工程著作&#xff0c;无论是软件开发者、管理者还是学习软件工程的人士&#xff0c;都能从中获得宝贵的启…...

C现代方法(第19章)笔记——程序设计

文章目录 第19章 程序设计19.1 模块19.1.1 内聚性与耦合性19.1.2 模块的类型 19.2 信息隐藏19.2.1 栈模块 19.3 抽象数据类型19.3.1 封装19.3.2 不完整类型 19.4 栈抽象数据类型19.4.1 为栈抽象数据类型定义接口19.4.2 用定长数组实现栈抽象数据类型19.4.3 改变栈抽象数据类型中…...

Elasticsearch 作为 GenAI 缓存层

作者&#xff1a;JEFF VESTAL&#xff0c;BAHA AZARMI 探索如何将 Elasticsearch 集成为缓存层&#xff0c;通过降低 token 成本和响应时间来优化生成式 AI 性能&#xff0c;这已通过实际测试和实际实施进行了证明。 随着生成式人工智能 (GenAI) 不断革新从客户服务到数据分析…...

FPGA与STM32_FSMC总线通信实验

FPGA与STM32_FSMC总线通信实验 内部存储器IP核的参数设置创建IP核FPGA代码STM32标准库的程序 STM32F407 上自带 FSMC 控制器&#xff0c;通过 FSMC 总线的地址复用模式实现STM32 与 FPGA 之间的通信&#xff0c;FPGA 内部建立 RAM 块&#xff0c;FPGA 桥接 STM32 和 RAM 块&…...

如何快速掌握PyWavelets:10个实用小波变换技巧

如何快速掌握PyWavelets&#xff1a;10个实用小波变换技巧 【免费下载链接】pywt PyWavelets - Wavelet Transforms in Python 项目地址: https://gitcode.com/gh_mirrors/py/pywt PyWavelets是一个强大的Python库&#xff0c;专门用于实现小波变换&#xff0c;为信号处…...

c++怎么获取文件的压缩比例信息_GetCompressedFileSize应用【实战】

GetCompressedFileSize返回的是NTFS压缩后磁盘占用字节数&#xff0c;非压缩比例&#xff1b;须先用GetFileAttributes检查FILE_ATTRIBUTE_COMPRESSED标志&#xff0c;否则结果无意义&#xff0c;且对非NTFS卷、加密或稀疏文件行为未定义。GetCompressedFileSize 返回值比实际大…...

Gemini出点问题-----解决

遇到这个问题&#xff0c;网址栏目输入 后面加上 /gems/createwww.gemini.com/gems/create命个名字就好了 &#xff0c;点击左上角的报错&#xff0c;就开启新对话了 基本跟什么服务地址&#xff0c;ip干净不干净没啥关系&#xff08;我都试过了&#xff09;&#xff0c…...

计算机毕业设计:Python农产品价格与销量关联分析系统 Django框架 数据分析 可视化 大数据 大模型 机器学习(建议收藏)✅

1、项目介绍 技术栈 采用 Python 语言开发&#xff0c;基于 Django 框架搭建后端服务&#xff0c;使用 MySQL 数据库进行数据存储&#xff0c;前端结合 HTML 与 Echarts 可视化库实现数据展示。 功能模块农产品价格区间分布农产品销量分布农产品不同省份销量分布农产品…...

从一道BUUCTF的SSRF题,聊聊Linux命令行那些“意想不到”的利用姿势(HITCON 2017实战复盘)

从BUUCTF SSRF题看Linux命令行的隐秘攻击面 在CTF竞赛和实际渗透测试中&#xff0c;SSRF&#xff08;服务器端请求伪造&#xff09;常被视作简单的内网探测工具&#xff0c;但2017年HITCON这道题却展示了它如何与Linux命令行特性结合&#xff0c;实现从信息泄露到远程代码执行的…...

用Modbus Poll/Slave和串口助手调试STM32 Modbus主从机的完整流程

用Modbus Poll/Slave和串口助手调试STM32 Modbus主从机的完整流程 在工业自动化领域&#xff0c;Modbus协议因其简单可靠的特点成为最常用的通信协议之一。对于嵌入式开发者而言&#xff0c;掌握Modbus协议的调试技巧至关重要。本文将详细介绍如何使用Modbus Poll、Modbus Slav…...

C语言宏定义续行符踩坑实录:手把手教你解决‘backslash and newline separated by space’警告

C语言宏定义续行符的隐秘陷阱&#xff1a;从警告解析到工程级解决方案 第一次在CLion里看到backslash and newline separated by space这个警告时&#xff0c;我盯着那个无辜的反斜杠看了足足三分钟。作为一个刚接触C语言宏编程的开发者&#xff0c;这个看似简单的格式问题背后…...

2026届必备的五大AI辅助论文神器推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能助力撰写开题报告&#xff0c;能大幅提高研究框架搭建效率&#xff0c;它依据自然语…...

互联网大厂 Java 求职面试:音视频场景中的技术挑战

互联网大厂 Java 求职面试&#xff1a;音视频场景中的技术挑战 在一个晴朗的下午&#xff0c;面试官小李正坐在会议室中&#xff0c;等候着候选人燕双非的到来。这位看似轻松的程序员&#xff0c;今天却要面对一系列技术问题。小李微笑着&#xff0c;开始了第一轮提问。第一轮提…...

ZYNQ以太网开发避坑指南:详解1G/2.5G PCS/PMA IP核的MDIO与AN配置那些事儿

ZYNQ以太网开发避坑指南&#xff1a;详解1G/2.5G PCS/PMA IP核的MDIO与AN配置那些事儿 在嵌入式系统开发中&#xff0c;以太网功能几乎是现代设备的标配。对于使用Xilinx ZYNQ系列FPGA的开发者来说&#xff0c;1G/2.5G Ethernet PCS/PMA IP核是实现高速网络连接的关键组件。然而…...