【c++Leetcode】141. Linked List Cycle

news2024/11/17 5:22:48

问题入口

思想:Floyd's Tortoise and Hare 

这个算法简单来说就是设置一个慢指针(一次移动一个位置)和一个快指针(一次移动两个位置)。在遍历过程中,如果慢指针和快指针都指向同一个元素,证明环存在;否则,环不存在。

点击上面这个标题链接,主要是帮助我们理解为什么这两个指针一定会相遇(ps. 即使两个指针起点位置不同依然成立)。

s为慢指针,f为快指针。假设他们之间的距离为10,如下图所示。

 经历一次移动,s会向前走一步,此时距离会变成10+1=11。f向前走两步,此时距离会变成9。

 综上,快慢指针的距离会一次次减少,最终相遇。

class Solution {
public:
    ListNode *slow, *fast;
    bool hasCycle(ListNode *head) {
        slow = head;
        fast = head;

        while(fast != NULL && fast->next != NULL)
        {
            fast = fast->next->next;
            slow = slow->next;

            if (fast == slow) return true;
            
        }
        
        return false;
    }
};

注意fast != NULL && fast -> next != NULL。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1113424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pycharm无法加载第三方库问题解决

pycharm无法加载第三方库 1、问题展示 2、在下面窗口点击转到工具窗口,pycharm社区版没有这个选项 3、在设置中添加镜像源 4、应用即可,然后就可以在第3步中搜索需要的库了

如何在一个CSS文件中引入其他CSS文件

import 规则可以在一个CSS文件中引用另一个CSS文件。它的语法如下所示: import url("path/to/another.css");在这个例子中,我们使用 import 规则将另一个名为”another.css”的CSS文件引入到当前的CSS文件中。可以使用相对路径或绝对路径指定…

C# 使用 LibUsbDotNet 实现 USB 设备检测

国庆节回来后的工作内容,基本都在围绕着各种各样的硬件展开,这无疑让本就漫长的 “七天班” ,更加平添了三分枯燥,我甚至在不知不觉中学会了,如何给打印机装上不同尺寸的纸张。华为的 Mate 60 发布以后,人群…

RabbitMQ 消息模型

参考 ​​​​​​【RabbitMQ】RabbitMQ架构模型_rabbitmq结构模型-CSDN博客 之前的学习都只是知道名字,但并没有真正的理解,每次看还是不懂,所以今日理解透 ! RabbitMQ 收发消息过程如下: 首先从消费者开始&#xff1…

云南毕业旅游攻略

第一站:长沙-大理 大理景点推荐 苍山:大理的最佳观景台,拥有变幻万千的云景和素负盛名的大理“风花雪月”四景之一的苍山雪景。可以乘坐索道上山,观赏珍珑棋局、清碧溪、七龙女池、苍山大峡谷、玉带云游路等。洱海:大理…

文件的逻辑结构(顺序文件,索引文件)

所谓的“逻辑结构”,就是指在用户看来,文件内部的数据应该是如何组织起来的。 而“物理结构”指的是在操作系统看来,文件的数据是如何存放在外存中的。 1.无结构文件 无结构文件:文件内部的数据就是一系列二进制流或字符流组成。无明显的逻…

ChatGPT的狂飙之路

ChatGPT的狂飙之路 第一章:AI顶流-闪耀互联网世界的新宠 根据UBS发布的研究报告显示,ChatGPT在1月份的月活跃用户数已达1亿,成为史上用户数增长最快的消费者应用。TikTok在全球上线后花了大约9个月的时间才增加了1亿用户,而Inst…

冰箱监控温度需要安装温度采集器需要什么条件

冰箱监控温度需要安装一个温度采集器在冰箱内部,以实时监测冰箱的温度。采集器可以是数字温度传感器、热敏电阻或其他类型的温度传感器。 当然也需要安装信号中继器也就是我们的智能网关,用于接收和记录温度采集器的数据。这一套系统就是温度监控系统&am…

【毕设必备】手把手带你用Python搭建一个简单的后端服务- API的创建,前后端交互的数据传递,GET,POST,JSON,FLASK

目录 Python 介绍Python的特性Python的使用场景python基本语法 FlaskViewModelControlhtmlsimple api连接数据库 跨域 Mojo比python快68000倍相关链接 Python 介绍 Python是一种流行的高级编程语言,具有易于学习和使用的特性,被广泛应用于各种领域。 P…

移动硬盘被格式化了如何恢复数据?四步教你如何恢复

在日常生活中,我们常常会使用各种存储设备来保存和备份我们的重要数据。移动硬盘作为一种便携式的存储设备,被广泛应用于数据的存储和传输。然而,有时候我们会不小心将移动硬盘格式化,从而丢失了里面的数据。本文将介绍移动硬盘格…

如何通过沉浸式投影技术提升文旅夜游的互动体验?

伴随着国民经济的提升,文旅夜游市场也开始通过各类创新设计形式,来吸引更多的游客前来打卡游玩,使其逐渐成为了当下热度较高的一种游玩模式,其中在收集各类用户的体验反馈时,沉浸式投影依靠新颖的视觉体验以及沉浸式观…

安装Apache2.4

二、安装配置Apache: 中文官网:Apache 中文网 官网 (p2hp.com) 我下的是图中那个版本,最新的64位 下载下后解压缩。如解压到D:\Program Files\Apache\Apache24 PS:特别要注意使用的场景和64位还是32位版本 2、修改Apcahe配置文…

2023.10.18

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slot…

电商数据采集的10个经典方法

电商数据采集的网页抓取数据、淘宝、天猫、京东等平台的电商数据抓取&#xff0c;网页爬虫、采集网站数据、网页数据采集软件、python爬虫、HTM网页提取、APP数据抓包、APP数据采集、一站式网站采集技术、BI数据的数据分析、数据标注等成为大数据发展中的热门技术关键词。那么电…

什么是零拷贝

普通拷贝流程 在实际应用中&#xff0c;如果我们需要把磁盘中的某个文件内容发送到远程服务器上&#xff0c;那么它必须要经过几个拷贝的过程&#xff0c;。从磁盘中读取目标文件内容拷贝到内核缓冲区&#xff0c;CPU 控制器再把内核缓冲区的数据赋值到用户空间的缓冲区中&…

全志R128外设模块配置——ADC按键配置方法

ADC 按键配置方法 FreeRTOS平台上使用的按键为ADC-KEY&#xff0c;采用的ADC模块为GPADC。 按键功能驱动的实现是通过ADC分压&#xff0c;使每个按键检测的电压值不同&#xff0c;从而实现区分不同的按键。按下或者弹起中断之后&#xff0c;通过中断触发&#xff0c;主动检测…

电子技术基础之一(电容和电感)

Electronic Techonolgy 1、电容和电感1.1、电容(Capacitor)1.1.1、滤波功能1.1.2、储能功能 1.2、电感(Inductor)1.2.1、楞次定律1.2.2、储能作用 1、电容和电感 先讲一个概念&#xff0c;电流分为直流电和交流电&#xff0c;其中直流电再分为稳定直流电和脉动直流电。 直流电…

如何使用VSCode将iPad Pro转化为功能强大的开发工具?

文章目录 前言1. 本地环境配置2. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.2 创建HTTP隧道 3. 测试远程访问4. 配置固定二级子域名4.1 保留二级子域名4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问6. iPad通过软件远程vscode6.1 创建TCP隧道 7. ipad远…

SpringBoot (3) Profiles,外部化配置,自定义starter

目录 1 Profiles 1.1 "组件"环境隔离 1.1.1 标识环境 1.1.2 激活环境 1.2 "配置"环境隔离 1.2.1 添加"副配置文件" 1.2.2 激活环境 2 外部化配置 2.1 配置优先级 2.2 快速部署 3 自定义starter 3.1 基本抽取 3.1.1 导yaml提示包 3…

mac录屏怎么录?看这里,告别繁琐操作!

屏幕录制是mac用户在日常生活中经常需要使用到的功能&#xff0c;无论是记录游戏精彩瞬间、分享在线会议、制作教学视频还是保存重要资料&#xff0c;屏幕录制都可以帮助我们更便捷地实现这些需求。但是很多用户并不知道mac录屏怎么录。在本文中&#xff0c;我们将介绍两种mac录…