力扣 141.环形链表和142.环形链表2

目录

  • 1.环形链表Ⅰ解题思路
  • 2.环形链表Ⅰ代码实现
  • 3.环形链表Ⅱ解题思路
  • 4.环形链表Ⅱ代码实现

1.环形链表Ⅰ解题思路

利用快慢指针,快指针一次走两个,慢指针一次走一个,如果出现了快指针为空或者快指针的next为空的现象则说明不带环,但如果带环,那么快指针就一定能够追上慢指针,原理如下在这里插入图片描述

2.环形链表Ⅰ代码实现

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

3.环形链表Ⅱ解题思路

首先利用环形链表Ⅰ的思路可以求出快慢指针相遇时指针的位置则可设此位置距离循环开始的位置距离为X,设从开头到循环点的距离为L,环的长度为C,则慢指针走的路程就为L+X,而且快指针走的距离就为L+n*C+X,则由数学公式推理可得:一个指针从相遇点走,另一个指针从开头走,则他们会在循环入口点相遇,由此特性就可得出循坏的开始点.

在这里插入图片描述

4.环形链表Ⅱ代码实现

struct ListNode *detectCycle(struct ListNode *head) 
{   if(head==NULL)return NULL;if(head->next==NULL)return NULL;struct ListNode *fast=head;struct ListNode *slow=head;while(fast){   if(fast->next==NULL)return NULL;fast=fast->next->next;slow=slow->next;if(fast==slow&&fast!=NULL)break;}if(fast==NULL)return NULL;struct ListNode *p=head;while(p!=fast){
fast=fast->next;
p=p->next;}
return fast;}

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

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

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

相关文章

Docker dnmp 多版本php安装 php8.2

Laravel9 开发需要用到php8.1以上的版本,而dnmp只支持到php8.0。安装php8.2的步骤如下: 1. 从/services/php80目录复制一份出来,重命名为php82,extensions目录只保留 install.sh 和 install-php-extensions 这两个文件 2. 修改.en…

4 Tensorflow图像识别模型——数据预处理

上一篇:3 tensorflow构建模型详解-CSDN博客 本篇开始介绍识别猫狗图片的模型,内容较多,会分为多个章节介绍。模型构建还是和之前一样的流程: 数据集准备数据预处理创建模型设置损失函数和优化器训练模型 本篇先介绍数据集准备&am…

网络安全应急响应工具(系统痕迹采集)-FireKylin

文章目录 网络安全应急响应工具(系统痕迹采集)-FireKylin1.FireKylin介绍【v1.4.0】 2021-12-20【v1.0.1】 2021-08-09 2.客户端界面Agent支持的操作系统FireKylinAgent界面使用方式比较传统方式与FireKylin比较无法可达目标的场景应用对比 3.使用教程设置语言Agent配置&#x…

c++11中的线程库和包装器

c11 1. 线程库1.1 线程库1.2 锁mutex 2. 包装器2.1 funciton2.2 bind 1. 线程库 1.1 线程库 C11中的线程库提供了一种方便的方式来创建和管理线程。其中,std::thread是一个重要的类,它允许我们创建新线程并控制它们的执行。以下是std::thread的一些重要…

1822_使用python内置的库进行日期序列的生成

使用python的内置的库进行日期序列的生成 用到的库介绍 datetime 实现这样的功能其实只需要这一个库就够了,但是网络上找到的例程很多都额外增加了对time库的引用。只能说,这样不会出现错误,但是这样肯定会有一些计算资源上的消耗。 #!/u…

零信任网络:一种全新的网络安全架构

随着网络技术的不断发展,网络安全问题日益凸显。传统的网络安全策略往往基于信任和验证,但这种信任策略存在一定的局限性。为了解决这一问题,零信任网络作为一种全新的网络安全架构,逐渐受到人们的关注。本文将对零信任网络的概念…

MATLAB算法实战应用案例精讲-【图像处理】数字图像处理

目录 几个高频面试题目 图像分类、图像识别、目标检测的优缺点分析与算法比较 知识储备

回归预测 | Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测&…

同步网盘与云盘:哪个更好用?

同步网盘、同步云盘现在是热门的文件管理工具,在回答“同步网盘云盘哪个好用”这个问题之前,我们需要知道什么样的同步网盘、同步云盘算好用? 什么样的同步网盘云盘好用? 1、存储空间大 对于文件管理工具而言,存储空…

ORM-1 字段默认值

当在odoo页面新建一条记录的时候,前端会通过rpc调用后端模型的default_get 函数,根据前端传入的字段列表,来获取相对应的字段默认值。# odoo/models.pyapi.modeldef default_get(self, fields_list):""" default_get(fields_l…

[Hive] Map类型在表中是如何存储的

在 Hive 中,Map 类型是指键值对的集合,其中键和值都可以是任意数据类型。 在 Hive 表中,Map 类型通常被存储为结构体或者键值对列表。 具体来说,在表中,Map 类型通常分为以下两种存储方式: 文章目录 结构…

PCTA认证考试-01_TiDB数据库架构概述

TiDB 数据库架构概述 一、学习目标 理解 TiDB 数据库整体结构。了解 TiDB Server,TiKV,TiFlash 和 PD 的主要功能。 二、TiDB 体系架构 1. TiDB Server 2. TiKV OLTP 3. Placement Driver 4. TiFlash OLAP OLTPOLAPHTAP

思考的起点(一): 事实与判断

事实与判断是思考的主要组成部分,深入理解事实与判断的基本概念,了解其应用可以提升个体的思考质量; 关于事实真相 事实是认知的基础 1.很多事情没有真相, 或者说真相陷入历史的迷雾中, 无法被发现; 2.世界不需要真相,真相往往都是复杂又残…

Go并发编程

一、goroutine 和 通道 在Go语言中,每一个并发执行的活动成为goroutine。通道则是每一个goroutine之间传递消息的工具。 1、Goroutine 在一个Go程序中,只有一个主Goroutine来调用main函数。生成新的goroutine也十分简单,例如有一个函数&…

GZ035 5G组网与运维赛题第9套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第9套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) 子…

springboot actuator jvm监控丢失

1、背景 系统接入了监控prometheus和grafana,某天grafana突然发现只有几台机器可以看到指标。 随便点击一个地址http://192.168.0.76:8681/lms/actuator/prometheus访问指标,发现JVM相关指标全部丢失 2、解决方法 从网上查找相关资料,逐一…

【实践篇】一次Paas化热部署实践分享 | 京东云技术团队

前言 本文是早些年,Paas化刚刚提出不久时,基于部门内第一次Paas化热部署落地经验所写,主要内容是如何构建一些热部署代码以及一些避雷经验。 一、设计-领域模型设计 1.首先,确定领域服务所属的领域 2.其次,确定垂直…

leetcode经典面试150题---6.旋转数组

题目描述 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步…

2024上海国际合成生物学与绿色生物制造展览会8月7-9号上海举办

2024年8月7日至9日,一场生物制造领域的盛会将在上海新国际博览中心闪亮登场。那就是2024上海国际合成生物学与绿色生物制造展览会。这场盛会将同期举办2024第13届上海国际生物发酵展,形成了一个强大的“生物军团”,展现出生物科技领域的无限魅…

图解系列--理解L3交换机的性能与功能

04.01 何为 L3 交换机 L3交换机是一种在L2 交换机的基础上增加了路由选择功能的网络硬件,能够通过基于ASIC 和 FPGA 的硬件处理高速实现网络功能和转发分组。L2 是指 OSI 参考模型中的L2, 也就是数据链路层。L2 交换机能够基于该层主要编址的 MAC 地址,…