LeetCode142. 环形链表 II(2024秋季每日一题 28)

news2024/9/26 22:05:23

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

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

不允许修改 链表。

示例 1:

在这里插入图片描述

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

示例 2:

在这里插入图片描述

输入:head = [1,2], pos = 0
输出:返回索引为 0 的链表节点
解释:链表中有一个环,其尾部连接到第一个节点。

示例 3:
在这里插入图片描述

输入:head = [1], pos = -1
输出:返回 null
解释:链表中没有环。

提示:

链表中节点的数目范围在范围 [0, 104] 内
− 1 0 5 < = N o d e . v a l < = 1 0 5 -10^5 <= Node.val <= 10^5 105<=Node.val<=105
pos 的值为 -1 或者链表中的一个有效索引

进阶: 你是否可以使用 O(1) 空间解决此题?


思路:

    1. 哈希
    1. 快慢指针

官方题解

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode *detectCycle(ListNode *head) {
        ListNode * slow = head, * fast = head;
        while(fast != NULL){
            slow = slow -> next;
            fast = fast -> next;
            if(fast == NULL) return NULL;
            fast = fast->next;
            if(fast == slow){
                ListNode * pre = head;
                while(pre != slow){
                    pre = pre -> next;
                    slow = slow -> next;
                }
                return pre;
            }
        }
        return NULL;
    }
};

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

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

相关文章

C++:STL详解(二)string类的模拟实现

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f4ab; 欢迎来到我的学习笔记&#xff01; &#x1f525;&#x1f525;&#x1f525;&#x1f525;&#x1f525;本文参考文章&…

合同管理中的常见陷阱,你是否也中招了?

在合同管理中&#xff0c;很多企业常常会掉进一些意想不到的“陷阱”。这些问题可能在日常工作中看似无关紧要&#xff0c;但一旦忽视&#xff0c;往往会引发一系列严重的后果。合同信息管理混乱&#xff0c;导致重要条款被遗漏&#xff0c;签署文件时出现纰漏&#xff1f;合同…

Pygame中Sprite实现逃亡游戏4

在《Pygame中Sprite实现逃亡游戏3》中实现了玩家跳跃飞火的效果&#xff0c;接下来通过精灵类的碰撞检测来判断飞火是否击中玩家、飞火是否击中飞龙以及飞龙是否抓住玩家。 1 飞火是否击中玩家的判断 判断飞火是否击中玩家的代码如图1所示。 图1 判断飞火是否击中玩家的代码 …

大数据-144 Apache Kudu 基本概述 数据模型 使用场景

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

企业私有网盘怎么搭建?整理国内外主流 18 家方案厂商

目前市场上主流的企业网盘有360亿方云、坚果云、百度企业网盘、联想企业网盘、燕麦云智能企业云盘、腾讯企业网盘等等。就创立时间和用户量来看&#xff0c;联想企业网盘、360亿方云可以说第一梯队的存在。 企业需要的不仅仅是文档存储、分享和协作的简单管理工具&#xff0c;还…

AI无人直播新标杆,一站式直播解决方案:打造专属舞台!

AI无人直播新标杆&#xff0c;一站式直播解决方案&#xff1a;打造专属舞台&#xff01; 在数字化浪潮的汹涌澎湃中&#xff0c;AI技术正以前所未有的速度渗透至各行各业&#xff0c;其中&#xff0c;直播行业作为数字内容传播的重要阵地&#xff0c;正经历着一场由AI引领的深刻…

pr视频剪辑、福昕剪辑……四款剪辑视频大比拼

最近入了视频剪辑的坑&#xff0c;我最近在尝试不同的视频剪辑软件&#xff0c;想找到最适合我的那一款。今天&#xff0c;我就来跟大家分享一下我使用福昕视频剪辑、爱拍视频剪辑、Adobe Premiere&#xff08;简称PR&#xff09;和Shotcut这四款软件时的一些体验和感受。希望我…

移动硬盘突然打不开:深度剖析、恢复策略与预防措施

突发困境&#xff1a;移动硬盘的沉默拒绝 在日常的数字生活中&#xff0c;移动硬盘作为数据存储与传输的重要工具&#xff0c;扮演着不可或缺的角色。然而&#xff0c;当您急需访问存储在移动硬盘中的重要文件时&#xff0c;却遭遇了“突然打不开”的尴尬境地&#xff0c;这无…

C++ 3 个有序点的方向(Orientation of 3 ordered points)

给定三个点 p1、p2 和 p3&#xff0c;任务是确定这三个点的方向。 平面中有序三重点的方向可以是 逆时针 顺时针 共线 下图显示了 (a,b,c) 的不同可能方向 如果 (p1, p2, p3) 的方向共线&#xff0c;则 (p3, p2, p1) 的方向也共线。 如果 (p1, p2, p3) 的方向是顺时针&a…

idea不想提交前端代码,只提交.java和.xml文件配置

1.按图创建.gitignore文件 &#xff08;忽略文件&#xff09; 2.该文件的内容 直接cp /.gitignore *.DS_Store Thumbs.db *.sw? .#* *# *~ *.sublime-* # Build Artifacts .gradle/ build/ target/ bin/ dependency-reduced-pom.xml # Eclipse Project Files .classpath .pro…

Python办公自动化案例:将Excel数据批量保存到Word表格中

案例:将excel数据批量保存到Word表格中 要将Excel数据批量保存到Word表格中,可以使用Python的openpyxl库来读取Excel文件,以及python-docx库来创建和编辑Word文档。以下是一段示例代码,以及代码解释和一些注意事项。 准备好的Excel数据: 1.安装所需库 首先,确保你已经…

Electron-vue asar 局部打包优化处理方案——绕开每次npm run build 超级慢的打包问题

背景 因为组员对于 Electron 打包过程存在比较迷糊的状态&#xff0c;且自己也没主动探索 Electron-vue 打包细节&#xff0c;导致每次打包过程都消耗 5-6 分钟的时间&#xff0c;在需要测试生产打包时&#xff0c;极其浪费时间&#xff0c;为此针对 Electron-vue 打包的几个环…

如何使用ssm实现学生考勤管理系统的设计与实现+vue

TOC ssm703学生考勤管理系统的设计与实现vue 绪论 课题背景 身处网络时代&#xff0c;随着网络系统体系发展的不断成熟和完善&#xff0c;人们的生活也随之发生了很大的变化。目前&#xff0c;人们在追求较高物质生活的同时&#xff0c;也在想着如何使自身的精神内涵得到提…

即插即用篇 | DenseNet卷土重来! YOLOv8 引入全新密集连接卷积网络 | ECCV 2024

本改进已同步到YOLO-Magic框架! 本文重新审视了密集连接卷积网络(DenseNets),并揭示了其在主流的ResNet风格架构中被低估的有效性。我们认为,由于未触及的训练方法和传统设计元素没有完全展现其能力,DenseNets的潜力被忽视了。我们的初步研究表明,通过连接实现的密集连接…

未能参加工博会的open61499

上海工博会正在如火如荼的进行中&#xff0c;各大工业板块的厂商都展示出了自家新的产品和解决方案&#xff0c;遗憾的是open61499没能到上海工博会亮相&#xff0c;只能通过写文章发自媒体的方式给大家介绍open61499。 open61499是基于IEC61499标准打造的工业编程平台&#xf…

Keil5安装arm和C51共存环境

一、安装前准备 ①Keil5 mdk安装包 ②Keil5 C51安装包 ③注册机 如下 二、安装步骤 ①建立两个文件夹用于存放Keil5 C51安装程序和keil5 mdk安装程序 如下图 ②点击c51v95a.exe进行安装&#xff0c;一路next&#xff0c;安装在Keil5_C51目录下 ③点击MDK539.ext进行安装…

Redis篇(环境搭建)

目录 一、安装包 1. Windows版下载地址 2. Linux版下载地址 二、安装Redis 1. 在Linux中安装Redis 2. 在Windows中安装Redis 3. 细节问题 三、Redis服务启动 1. 默认启动 2. 指定配置启动 3. 开机自启 四、Redis服务停止 1. Linux系统中启动和停止Redis 2. Window…

MongoDB 双活集群在运营商的实践

在现代电信行业中&#xff0c;订单中心作为核心业务系统之一&#xff0c;承担着处理客户订单、管理订单状态、与各个业务系统进行交互等重要职责。其订单中心的高效运作直接关系到客户体验和业务连续性。为了满足不断增长的业务需求和日益复杂的运营环境&#xff0c;运营商需要…

微调大模型(Finetuning Large Language Models)—Where finetuning fits in(二)

1.什么时候适合用finetune 微调&#xff08;finetuning&#xff09;对人的作用包括行为改变和知识获取。行为改变方面&#xff0c;包括学习更一致地回应、学会专注&#xff08;如适度&#xff09;以及发挥能力&#xff08;如更擅长对话&#xff09;&#xff1b;知识获取方面&am…

三、人物骨骼介绍

一、迁移骨骼包 注意&#xff1a;要迁移所有骨骼压缩包&#xff08;单独可能会有问题&#xff09; 二、认识骨骼 点击骨骼 进入骨骼页面