day16-环形链表

问题描述:

给定一个链表的头节点  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
解释:链表中没有环。

解决方案:

1、物理同向追击:快指针速度-慢~== 1 格/次,即相对追击速度为1时,必然在追上时相遇!

2、快指针一定先进入循环内,慢指针进入时,快指针已经循环了 n 圈

3、快指针与慢指针第一次相遇时:

        状态分析:(1)满指针结束本次循环,即到达循环开始节点的距离为 X;

                          (2)链表起点 到达次循环开始节点的距离为 X;

                          (3)设快指针新起点为 链表起点,且速度等于满指针速度。

函数代码:

class Solution {
public:ListNode *detectCycle(ListNode *head) {if(!head||!head->next)     return NULL;ListNode*slow=head,*fast=head;while(1){if (!fast||!fast->next) return NULL;slow=slow->next;fast=fast->next->next;if(slow==fast)  break;}fast=head;while(slow!=fast){slow=slow->next;fast=fast->next;}return fast;}
};

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

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

相关文章

更改默认的网络状态页面

目录 网络状态码 概念 分类 详解 页面更改 场景 步骤 网络状态码 概念 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头用以响应浏览器的请求…

仿牛客社区项目所有PPT图片

文章目录 第1章 初识Spring Boot,开发社区首页1.1 课程介绍1.1.1 课程目标1.1.2 技术架构1.1.3 开发环境 1.2 搭建开发环境1.2.1 Apache Maven1.2.2 Intellij IDEA1.2.3 Spring Initializer1.2.4 SpringBoot 入门示例 1.3 Spring入门1.3.1 SpringBoot 全家桶1.3.2 S…

SpringBoot 邮件服务集成配置全面解析

前言 本文以网易邮箱(及 163 邮箱)为例,展示如何为 SpringBoot 项目集成邮件服务,其他邮箱配置类似,可以自行查看 Spring Email 指南 或是其他官方文档 授权码 首先我们需要获取授权码,用于后续配置&…

Xpath解析

目录 Xpath的简介: 简介: 相关概念: Xpath的使用: 安装: 用法: 第一步:准备html 第二步:将html构造出etree对象 第三步:使用etree对象的xpath()方法配合xpath表达…

JAVA——volatile,wait,notife

文章目录 volatile关键字简识jvm内存模型内存上的优化问题的产生volatile的作用 wait()wait()的作用 notify()notify的唤醒顺序 volatile关键字 volatile关键字可以保证内存的可见性,什么是内存的可见性呢&#xff1f…

二叉树的链式结构和遍历(下)

又见面了,小伙伴们。今天我们继续来学习二叉树,今天的内容相对来说比较容易理解,前提是需要你们自己动手画图才会好理解。眼过千遍不如手过一遍。所以小伙伴们要多动手哦。直接开始今天的学习吧 1.二叉树链式结构的实现 1.1 前置说明 在学习…

如何成为顶尖程序员?

如何成为顶尖程序员? 程序员是一种特殊的职业,但为什么大多数程序员无法达到顶尖水平?本文探讨了几个可能的原因,包括缺乏热情和动力、基础和原理的不足、实践和经验的匮乏,以及思考和创新的欠缺。了解这些原因可以帮助…

基于SpringBoot+MyBatis+Vue的电商智慧仓储管理系统的设计与实现(源码+LW+部署+讲解)

前言 博主简介👨🏼‍⚕️:国内某一线互联网公司全栈工程师👨🏼‍💻,业余自媒体创作者💻,CSDN博客专家🏆,Java领域优质创作者📕&#x…

Redis中文乱码问题

最近排查问题,发现之前的开发将日志写在redis缓存中(不建议这样做),我在查看日志的时候发现没办法阅读,详细是这样的: 查阅资料后发现是进制问题,解决方法是启动客户端的时候将redis-cli改为red…

【go从入门到精通】if else 条件控制

作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C,go等语言开发经验,mysql,mongo,redis等数据库,设计模…

电脑安装双系统windows和ubuntu server

1.创建Ubuntu-server的启动盘 首先要从官网下载Ubuntu-server18.04的ISO文件,用rufs烧录到U盘。如下所示 2. 磁盘分区 在windows创建两个盘(linuxboot 和linuxroot),后面一个一个用于boot,一个用于root. 3.开机U盘启…

Flutter学习10 - Json解析与Model使用

对于网络请求返回的 Json 数据&#xff0c;一般会进行如下解析&#xff1a; 将 Json String 解析为 Map<String, dynamic>将 Json String 解析为 Dart Model 发起一个返回 Json String 的网络请求 import package:http/http.dart as http;void main() {_doGet(); }_do…

用好商用无人自助咖啡机,真正实现“AI智能”制饮!

随着科技的不断进步和智能化技术的广泛应用&#xff0c;商用无人自助咖啡机作为餐饮行业的新宠&#xff0c;正逐渐改变着我们的生活方式和消费体验。通过结合人工智能技术&#xff0c;这些无人自助咖啡机正在实现真正的“AI智能”制饮&#xff0c;为消费者带来全新的咖啡体验。…

Qt 项目使用visual studio 进行开发调试

https://marketplace.visualstudio.com/items?itemNameTheQtCompany.QtVisualStudioTools2015 https://devblogs.microsoft.com/cppblog/bring-your-existing-qt-projects-to-visual-studio/ 正常Qt开发中&#xff0c;使用Qt Creator 进行windows下MSVC编译器的调试是一件挺麻…

Medium 级别反射型 XSS 攻击演示(附链接)

环境准备 如何搭建 DVWA 靶场保姆级教程&#xff08;附链接&#xff09;https://eclecticism.blog.csdn.net/article/details/135834194?spm1001.2014.3001.5502 测试 打开靶场找到该漏洞页面 先右键检查输入框属性 跟 Low 级别是一样的&#xff0c;所以咱们直接输入带 HTM…

如何查看局域网内所有的ip和对应的mac地址

1、windows下查看 方法一、 按快捷键“winr”打开运行界面&#xff0c;输入“CMD”回车: 输入以下命令&#xff1a; for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.0.%i 其中 192.168.0.%i 部分要使用要查询的网段&#xff0c;比如 192.168.1.%i 192.168.137.%i 172.16.2…

AI修复老照片的一些参数设置

很久没更新CSDN文章了&#xff0c;这次给粉丝带来老照片修复流程 1>用ps修图 图章工具 笔刷 画笔修复 2>高清放大 3>lineattile 重绘 4>上色 具体可参考我的B站视频。 下面是一些笔记。 best quality,masterpiece,photorealistic,8k,ultra high res,solo,ext…

概念解析 | 现象揭秘:经验模态分解的奥秘

注1:本文系"概念解析"系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:经验模态分解(Empirical Mode Decomposition, EMD) 概念解析 | 现象揭秘:经验模态分解的奥秘 Decomposing Signal Using Empirical Mode Decomposition — Algorith…

Spring MVC入门(4)

请求 获取Cookie/Session 获取Cookie 传统方式: RequestMapping("/m11")public String method11(HttpServletRequest request, HttpServletResponse response) {//获取所有Cookie信息Cookie[] cookies request.getCookies();//打印Cookie信息StringBuilder build…

Spring+thymeleaf完成用户管理页面的增删查改功能

目录 知识点&#xff1a; 路由重定向 redirect:/*** 登录 控制层代码 接口 sql配置 页面效果 添加用户 控制层代码 接口 sql配置 页面效果 查看信息 控制层代码 接口 sql配置 页面效果 修改信息 控制层代码 接口 sql配置 页面效果 条件查询 控制层代码 …