【力扣-141】 环形链表 + 【力扣-142】 环形链表 II

news2024/11/14 3:37:13

🖊作者 : Djx_hmbb
📘专栏 : 数据结构
😆今日分享 : 霍桑效应(霍索恩效应) : 是指那些意识到自己正在被别人观察的个人具有改变自己行为的倾向。
霍桑效应告诉我们:从旁人的角度,善意的谎言和夸奖真的可以造就一个人;从自我的角度,你认为自己是什么样的人,你就能成为什么样的人。
请添加图片描述

环形链表

  • 🖋题目链接:
  • ✔题目>环形链表 :
  • 🔎代码详情:
  • ✔题目>环形链表 II:
  • ✔解题思路:
  • 🔎代码详情:
  • 总结:
    • 家人们,点个![请添加图片描述](https://img-blog.csdnimg.cn/11dae7d2dd1b46b2b021edaccee67cf1.jpeg)再走呗~

🖋题目链接:

【力扣-141】 环形链表
【力扣-142】 环形链表 II

✔题目>环形链表 :

在这里插入图片描述

🔎代码详情:

bool hasCycle(struct ListNode *head) {
    struct ListNode *fast,*slow;
    fast = slow = head;
    
    //判断是否有环
    while(fast && fast->next){
        fast = fast->next->next;
        slow = slow->next;
        //追击问题
        if(fast == slow){
            return true;
        }
    }
    return false;
}

✔题目>环形链表 II:

在这里插入图片描述

✔解题思路:

请添加图片描述

如果链表存在环,则fast和slow会在环内相遇,定义相遇点到入口点的距离为X,定义环的长度为C,定义头到入口的距离为L,fast在slow进入环之后一圈内追上slow,则会得知:
slow所走的步数为:L + N
fast所走的步数为:L + N + K * C
并且fast所走的步数为slow的两倍,故:
2*(L + N) = L + N + K * C
即: L = K * C - N
所以从相遇点开始slow继续走,让一个指针从头开始走,相遇点即为入口节点

🔎代码详情:

struct ListNode *detectCycle(struct ListNode *head) {
    struct ListNode *fast,*slow;
    fast = slow = head;
    
    //判断是否有环
    while(fast && fast->next){
        fast = fast->next->next;
        slow = slow->next;
        //追击问题
        if(slow == fast){
            struct ListNode *meet = slow;
            struct ListNode *start = head;
            while(meet != start){
                meet = meet->next;
                start = start->next;
            }
            return meet;
        }
    }
    return NULL;
}

总结:

这个题目考察的主要是思维,如果是在搞不懂,也不用太气馁,慢慢来,实在不行,咱记住怎么写的就行,问题不大!


感谢家人的阅读,若有不准确的地方 欢迎在评论区指正!

家人们,点个请添加图片描述再走呗~

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

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

相关文章

线程的生命周期以及sleep()方法和wait()方法

三种休眠状态:Blocked,Waiting,Timed_Waiting 注意两个Blocked态是不一样的,上面的Blocked只要睡眠时间到了马上进入运行态,下面处于Blocked的线程还需要抢到锁才能进入运行态 sleep()和wait()方法: sleep…

【翻译一下官方文档】创建uniCloud服务空间并关联新建的uniapp项目

我将用图文的形式,把市面上优质的课程加以自己的理解,详细的把:创建一个uniCloud的应用,其中的每一步记录出来,方便大家写项目中,做到哪一步不会了,可以轻松翻看文章进行查阅。(此文…

论文笔记:An Interactive-Voting Based Map Matching Algorithm

2010 MDM 1 ST-matching的问题 论文笔记:Map-Matching for low-sampling-rate GPS trajectories(ST-matching)_UQI-LIUWJ的博客-CSDN博客 当轨迹很长,且车辆通过多线平行的道路时,ST-Matching的效果较差&#xff0c…

冯·诺依曼体系结构与初始操作系统

目录 冯诺依曼体系结构 冯诺依曼体系结构图 内存 外存 网卡和磁盘 结构之间运算速度的差异 缓冲区 初始操作系统 概念 操作系统上边与下边分别有什么 从上到下依次顺序解析 用户 用户操作接口 系统调用接口 操作系统四项管理 驱动 硬件 冯诺依曼体系结构 冯诺…

世界大学电子电气工程TOP10,国内大学哪家强?

EE究竟是什么专业 ? 在中国,工程系中跟电相关的专业,一般都切分得非常细。有电子工程、电气工程、通信工程、信息工程、自动化、测控仪器等。但在国外,一般把这些领域都归类到 Electrical Engineering 中,也就是我们常说的EE。 …

后向投影算法(续)-SAR成像算法系列(八)

系列文章目录 《后向投影算法(BPA)-SAR成像算法系列(二)》 文章目录 前言 一、成像场景设置 1.1 扫描模式 条带模式 聚束模式 1.2 几何构型 正侧视 斜视 1.3 成像坐标选择 固定场景直角坐标系 沿视线直角坐标系 数据获取面直角坐标…

深度学习GPU选购指南

【导读】最近,曾拿到斯坦福、UCL、CMU、NYU博士offer、目前在华盛顿大学读博的知名测评博主Tim Dettmers在自己的网站又上线了深度学习领域的GPU深度测评,到底谁才是性能和性价比之王? 众所周知,在处理深度学习和神经网络任务时&a…

马云的创业故事及他人生中的摆渡人-创建阿里巴巴(六)

著名的“18罗汉大会” 以及“马云成功背后的男人” 1999年大年初五,杭州湖畔花园小区,18个人坐满了一屋子, 这是阿里巴巴的第一次全员大会,马云激情澎湃地讲了2个小时,并且专门请了摄影师全程录像。 这就是传说中的…

边界点射箭问题

问题 题目 问题: 给定一个有目标位置和边界单元格为空的 n n 方格表,找出哪个位于边界单 元格的箭头会击中最多连续的目标而不经过目标之间的任何空单元格。箭头方向为: (A)←、(B) ↑、 © →、(D) ↓、(E) ↖、 (F) ↗、 (G) ↘ 和 (H) ↙。 将…

Nginx反向代理+Keepalived实现Nginx高可用

Keepalived概述: keepalived 是一个类似于 layer3, 4 & 5 交换机制的软件,也就是我们平时说的第 3 层、第 4 层和第 5层交换。 Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障&#xff…

[极客大挑战 2019]Havefun、[ACTF2020 新生赛]Include、[SUCTF 2019]EasySQL

[极客大挑战 2019]Havefun 进入环境就如下图啥都没给我查看了一下源码 直接给出了flag???尝试了一下结果是一个假的flag,然后我们分析源代码很容易看出我们通过GET方式给cat传一个值,如果cat的值为dog就输出flag,这很简单了我们通过get方…

京东2023年Q1财报预测:短期增速承压,收入和净利润预测被下调

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,中信证券近期发布研报维持京东(JD)买入评级,中信证券在研报中预计京东2023年第一季度的营收将达到2,383亿元/同比减少-0.6%,Non-GAAP净利润50.6亿元/…

AI剧本拆解,教你利用AI快速拆解剧本

AI剧本拆解是一项将影视、戏剧等剧本进行分析和优化的技术,可以帮助制作团队更好地规划角色、情节、场景等元素,并提升作品的艺术水平和观赏体验。 1、为什么要拆解剧本? 剧本拆解是制片人和导演的第一项工作,把剧本中各项要素分…

【Python入门第五十四天】Python丨NumPy ufuncs

什么是 ufuncs? ufuncs 指的是“通用函数”(Universal Functions),它们是对 ndarray 对象进行操作的 NumPy 函数。 为什么要使用 ufuncs? ufunc 用于在 NumPy 中实现矢量化,这比迭代元素要快得多。 它们…

win系统jenkins搭建+tomcat启动

简介 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成 下载war包 下载地址 (镜像安装 docker pull jenkins/jenkins:lts) …

面板数据进行熵值法

面板数据熵值法分析流程如下: 一、案例背景 当前有9家公司连续5年(2018-2022年)的财务指标数据,想要通过这份数据,确定各个财务指标的权重。熵值法根据指标离散程度确定赋权大小,客观公正准确度高。本次收…

python安装三方库教程:关于pip命令的一切,到底怎么用?

python安装三方库教程:关于pip命令的一切,到底怎么用? 一、pip设置国内源:1.1如何本地配置源:1.1.1 方法1:下载的时候指定地址1.1.2 方法2:使用pip命令生成配置文件1.1.3 方法3:自定…

vue---组件通信

目录 1、组件跨层级访问 (1)$emit (2)$root 、 $parent、$refs 2、依赖注入 3、透传及组件二次封装 组件间通信的三种方案: 1、组件跨层级访问,2、依赖注入,3、透传(用于组件二次封装&…

React Hooks 钩子函数错误用法,你还在犯这些错误吗

React Hooks 常见错误 前言 本片文章主要是在写react hooks的时候,遇到的常见错误的写法,和错误。也是一个对只是的巩固和总结。 错误一 上代码:正确写法 function TestReactHooksError() {const [test, setTest] useState(test);useEff…

论文阅读:PVO: Panoptic Visual Odometry

全景视觉里程计、同时做全景分割和视觉里程计 连接:PVO: Panoptic Visual Odometry 0.Abstract 我们提出了一种新的全景视觉里程计框架PVO,以实现对场景运动、几何和全景分割信息的更全面的建模。我们将视觉里程计(VO)和视频全景分割(VPS)在一个统一的…