C语言/数据结构——每日一题(环形链表)
一.前言
今天在力扣上刷到一道链表题——环形链表https://leetcode.cn/problems/linked-list-cycle
想着和大家们分享一下。让我们直接开始今天的分享吧。、
二.正文
1.1题目描述

1.2题目分析
这道题是想让我们做出分析,该链表是不是带环链表,如果是带环链表就返回true。否则,就返回false。
这道题我们可以采用快慢指针的办法:定义一个快指针fast,一次走两个节点。再定义一个慢指针slow,一次只走一个节点。
如果不是带环链表,slow在之后的遍历中是永远不可能与fast相遇的。因此当slow和fast相遇后,就可以证明该链表是环形链表。这里咱们可以这样理解fast跑的快一些,早早的就进入了环内,当速度慢一些地slow进环以后,fast可能已经循环了好几圈了。此时就变成了fast追击slow的问题了。
为什么我们在这里肯定fast与slow一定相遇呢。
这里我们可以做一个假设,假设当slow刚进入环的时候,fast与slow的距离为N。
slow走一步。fast走两步。它们的距离就会有以下变化:
N
N-1
N-2
N-3
。。。。
N-n
因此一定存在某个瞬间N-n为0。即两个指针相遇。

那么如果fast一次走三步,fast和slow会相遇吗?

同理,fast走4步也是按此分析。
1.3代码实现
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode;
bool hasCycle(struct ListNode *head) {if(head==NULL)return false;
ListNode* slow,*fast;
slow=fast=head;
while(fast&&fast->next){fast=fast->next->next;
slow=slow->next;
if(fast==slow)
{return true;
}}return false;
}
三.结言
题目分享写到这就结束了。帅哥美女们,觉得对自己有所帮助,能不能给我个三连。谢谢啦。
相关文章:
C语言/数据结构——每日一题(环形链表)
一.前言 今天在力扣上刷到一道链表题——环形链表https://leetcode.cn/problems/linked-list-cycle 想着和大家们分享一下。让我们直接开始今天的分享吧。、 二.正文 1.1题目描述 1.2题目分析 这道题是想让我们做出分析,该链表是不是带环链表,如果是…...
vue:网页icon无法显示
logo文件放在public文件夹下,在html里设置icon。 本地源码运行后发现网页icon无法显示我们设置的logo,而是显示了浏览器默认icon。 这个问题不需要解决,部署后网页icon显示就正常了。...
电脑设置在哪里打开?Window与Mac双系统操作指南
随着科技的不断发展,电脑已经成为我们日常生活和工作中不可或缺的一部分。然而,对于许多初学者来说,如何找到并熟悉电脑的设置界面可能是一个挑战。特别是对于那些同时使用Windows和Mac双系统的用户来说,更是需要一篇详尽的指南来…...
【linux】海量小文件的存储方案
在介绍海量文件存储之前,需要先介绍一下常见的系统里面文件是如何存储的 文件inode 在linux下,每个文件或者目录,都会分配一个inode(index node),它不存储具体的文件内容,而是记录该文件的基础信息。每个inode大小一…...
【SpringBoot整合系列】SpringBoot整合RabbitMQ-基本使用
目录 SpringtBoot整合RabbitMQ1.依赖2.配置RabbitMQ的7种模式1.简单模式(Hello World)应用场景代码示例 2.工作队列模式(Work queues)应用场景代码示例手动 ack代码示例 3.订阅模式(Publish/Subscribe)应用…...
MySQL————创建存储过程函数
存储过程使用大纲 有参数传递 delimiter $$ 声明一个名称为get_student_introduce create procedure add_student_infor( in p_userName VARCHAR(20),in p_phone VARCHAR(11),in p_sex char(2),in p_introduce VARCHAR(255)) 开始操作 BEGIN 撰写真正在操作DMLDQL都行 INSE…...
数据赋能(86)——数据要素:管理核心框架
数据管理的核心框架是一个综合性的体系,旨在确保数据的有效利用、安全性以及合规性。这个框架主要包含了以下几个关键组成部分: 数据治理策略与目标:明确数据管理的整体战略和目标,包括数据价值的释放、数据资产地位的确定、多元…...
测试的基本概念
什么是软件测试 软件测试它就是一个过程测试就是对软件的全方位进行全面的校验.通过测试技术验证软件是不是符合用户的信息. 测试和开发的区别 在工作上的区别: 开发人员通过编程技能来开发和实现这个软件. 测试人员通过测试技能来验证软件是否符合用户需求. 在技术上的要求…...
Python多线程加速-休眠部分线程
总所周知Python由于GIL的问题,使用多线程时同一时刻只有一个线程在工作。故Python会在所有线程之间不断的切换,每切换到一个线程会执行一段字节码指令然后切换到另一个线程。如果开启了很多线程,且只有小部分线程在工作,如果不休眠…...
B+树(B+ Tree)
B树(B Tree)是一种对B树(B-Tree)的改进版本,它在数据库系统和文件系统中作为索引结构得到了广泛的应用,特别是在磁盘存储的场景下。B树保留了B树的基本特征,如自平衡、多路分支等,但…...
【Linux】了解信号产生的五种方式
文章目录 正文前的知识准备kill 命令查看信号man手册查看信号信号的处理方法 认识信号产生的5种方式1. 工具2. 键盘3. 系统调用kill 向任意进程发送任意信号raise 给调用方发送任意信号abort 给调用方发送SIGABRT信号 4. 软件条件5. 异常 正文前的知识准备 kill 命令查看信号 …...
【nuxt3国际化i18n】vue3+nuxt3+vite+TS国际化的正确做法
1、创建nuxt3请看Nuxt3官网 2、下面是添加i18n的叫教程,适用于企业前端项目。 添加依赖 依赖 yarn add vue-i18n yarn add nuxtjs/i18nnext -D配置文件nuxt.config.ts //nuxt.config.ts export default defineNuxtConfig({modules: [nuxtjs/i18n,],i18n: {stra…...
数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储(20240508)
数据库管理185期 2024-05-08 数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储(20240508)1 上期示例说明2 两个参数2.1 NEST/UNNEST2.2 CHECK/NOCHECK 3 一数多用3.1 以用户维度输出订单信息3.2 以产品维度3.3 以产品种类维度 4 美化输出总结 数…...
7 zip 介绍
7-Zip是一款广受好评的开源文件存档与压缩工具,支持高比率的压缩,适用于Windows、Linux和macOS等多种操作系统平台。以下是关于7-Zip的详细介绍: - **高压缩比**:7-Zip最显著的特点是其提供的高压缩率,尤其是使用其独…...
前端页面 贴边拖拽 盒子
vue 悬浮球(带自动吸附功能)_vue悬浮球-CSDN博客...
【408真题】2009-10
“接”是针对题目进行必要的分析,比较简略; “化”是对题目中所涉及到的知识点进行详细解释; “发”是对此题型的解题套路总结,并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材(2025版&…...
WebSocket概述
TCP和HTTP规范有连接超时一说,所以长轮询并不能一直持续,服务端和客户端的连接需要定期的连接和关闭再连接。 WebSocket在请求头中有一个Connection:Upgrade字段,表示客户端想对协议进行升级,还有一个Upgrade:websocket字段&…...
人机协同是虚拟与真实的协同
“人机协同”是指人类与机器之间的合作与协同工作。在这种协同中,机器可以作为助手、辅助或扩展人类的能力,帮助人们完成任务,提高工作效率和质量。 虚拟与真实的协同是指在人机协同的过程中,虚拟想象世界和真实世界之间的协同。通…...
【编程向导】Docker-常用命令
常用命令 管理命令 管理命令说明builder管理构建config管理配置container管理容器context管理上下文engine管理引擎image管理镜像network管理网络node管理 Swarm 节点plugin管理插件secret管理 Docker secretsservice管理服务stack管理 Docker stacksswarm管理 Swarm 集群sys…...
LeetCode题练习与总结:不同的二叉搜索树Ⅱ--95
一、题目描述 给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。 示例 1: 输入:n 3 输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,nul…...
过渡金属配合物构建工具:从配位模板到多齿配体的智能设计平台
1. 项目概述:为什么我们需要一个“构建工具”?在合成化学、材料科学乃至药物研发领域,过渡金属配合物扮演着核心角色。它们不仅是催化反应的“发动机”,也是功能材料(如发光材料、磁性材料)的“结构单元”&…...
Kettle的优势
Kettle说具有非常强大的数据处理功能,没有做不到只有你想不到或者你还没有学会使用,如果确实做不到的情况下你还可以开发插件来进行数据处理,其中Kettle也提供了广泛的数据处理和转换功能,包括数据抽取、清洗、转换、合并、过滤等…...
Claude Desktop for Linux桌面集成:.desktop文件与MIME类型配置
Claude Desktop for Linux桌面集成:.desktop文件与MIME类型配置 【免费下载链接】claude-desktop-debian Claude Desktop for Linux 项目地址: https://gitcode.com/GitHub_Trending/cl/claude-desktop-debian Claude Desktop for Linux是一款强大的桌面应用…...
大模型训练师的炼丹之道 (3)-更高级训练,如何把大规模知识“刻”入模型
前言 在《炼丹之道》前两篇中,我们完成了从基础认知到身份重塑的入门仪式——当模型脱口而出“我是威震天”时,你已触摸到微调的魔法边缘。但那终究只是角色扮演的雏形,真正的炼丹术,在于将冰冷、精确的商业事实熔铸为模型的“肌…...
终极指南:如何用OpenPilot为您的爱车升级智能驾驶系统
终极指南:如何用OpenPilot为您的爱车升级智能驾驶系统 【免费下载链接】openpilot openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300 supported cars. 项目地址: https://gitcode.com/GitHub_Trendin…...
AI时代什么建站软件功能强大?从GEO流量重构看CMS的智慧进化
2026年,互联网的底层逻辑正在发生一场“静默革命”。如果你的思维还停留在“建一个网站只是为了有个官网给客户看”,那么你可能正在被时代抛弃。当下的AI已经不仅仅是一个聊天工具,它正在重构整个信息的传播秩序。传统的SEO(搜索引…...
Houdini 19.5 新手必看:从自定义启动界面到项目设置的保姆级避坑指南
Houdini 19.5 新手必看:从自定义启动界面到项目设置的保姆级避坑指南 第一次打开Houdini 19.5时,面对密密麻麻的界面和复杂的参数设置,很多新手会感到无所适从。本文将带你系统性地完成从界面个性化到项目配置的全流程,避开那些容…...
告别Python版本冲突!用Anaconda的conda命令5分钟搞定Python 3.8专属虚拟环境
告别Python版本冲突!用Anaconda的conda命令5分钟搞定Python 3.8专属虚拟环境 当你的开发机同时运行着基于Python 3.8的旧项目和支持Python 3.10的新项目时,是否经常遇到以下场景:刚在A项目调试通过的代码,切换到B项目就报错&#…...
量子退火与经典优化算法性能对比研究
1. 量子退火与经典优化算法的性能对比研究在计算科学领域,量子计算一直被视为可能带来革命性突破的技术。其中,量子退火(Quantum Annealing)作为一种专门用于解决组合优化问题的方法,近年来备受关注。然而,…...
大中小型企业数据配置年度成本估算分析
引言 在数字化转型浪潮下,数据已成为企业的核心资产。无论是初创公司、中型企业还是大型集团,合理规划数据存储、处理与分析的成本,对于优化IT预算、提升投资回报率至关重要。本文旨在为不同规模的企业提供一个清晰、可操作的年度数据配置成本…...
