news 2026/2/3 4:53:59

力扣题目142. 环形链表 II​的解法分享,附图解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣题目142. 环形链表 II​的解法分享,附图解

题目:

Problem: 142. 环形链表 II

图解:

思路:

  • 设两个指针fast和slow,fast每次走2步,slow每次走1步
  • 设n为fast比slow多走的圈数
  • 当相遇的时候根据fast和slow的步数关系:
  • 2(x+y)=x+y+(y+z)*n
  • 简单化简:
  • x=(n-1)(y+z)+z
  • 此时我们可以得知x与z的关系,因为y+z为一个圈,所以x等于z再加上一个圈的倍数
  • 此时定义一个指向头节点的指针,然后slow继续向前走,此时一定会在环的起始点相遇,因为此时恰好满足x等于z再加上一个圈的倍数的数量关系。

反思:

  • 其实很多时候,我们可以直接带入特殊值来直接看待数量关系直接令n=1便会很快发现这题的规律,取一些特殊值来达到快速定位规律的方法在很多题都适用,即从一般到特殊的分析方式。
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode detectCycle(ListNode head) { if (head == null || head.next == null|| head.next.next == null) { return null; // 无环 } ListNode fastNode=head.next.next; ListNode slowNode=head.next; while (fastNode != null && fastNode.next != null && fastNode != slowNode) { fastNode = fastNode.next.next; slowNode = slowNode.next; } if (fastNode == null || fastNode.next == null) { return null; // 无环 } //定义一个指针index1,在头结点处定一个指针index2 ListNode index1=head; ListNode index2=fastNode; while(index1!=index2 && index2 != null && index1!= null){ index1=index1.next; index2=index2.next; } return index1; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/31 23:35:06

【课程设计/毕业设计】基于Springboot+Vue的蛋糕购物商城系统的设计与实现基于springboot的云与糖蛋糕购物平台系统的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/31 23:35:04

基于SpringBoot校园快递代取系统(源码+lw+部署文档+讲解等)

课题介绍 随着校园快递量激增,学生因课程冲突、距离较远等问题难以及时取件,而代取需求分散、交易流程不规范等痛点凸显。本课题旨在设计并实现一款基于SpringBootVue的校园快递代取系统,解决传统代取模式信息不透明、流程繁琐、安全性不足等…

作者头像 李华
网站建设 2026/1/31 23:35:02

牵引变压器差动保护二次接线系统仿真模型探索

牵引变压器差动保护二次接线系统仿真模型 MATLAB/simulink 打包发送仿真源文件到邮箱,模型可实现变压器电压电流信息量的测量,以及验证继电保护装置动作的情况在电力系统中,牵引变压器的安全稳定运行至关重要,差动保护作为其重要的…

作者头像 李华
网站建设 2026/1/31 1:45:03

Java毕设选题推荐:基于Java实验室预约管理系统基于springboot的实验室预约系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/31 23:34:58

人工智能会全面超越人类吗,如何定义超越?

续拿电脑的运作机制来作对比,电脑诞生初始,只能被用来进行运算。可是随着科技的发展,电脑的内部构造,部件逐渐更换,有跳跃式的发展。计算,搜索,图文,看视频,录音&#xf…

作者头像 李华
网站建设 2026/1/31 23:34:57

PPP 协议

文章目录1 定义2 LCP 与 NCP3 PPP的帧格式4 PPPoE5 IPv6 IPoE1 定义 PPP(Point-to-Point Protocol)是指点对点协议,即一对一连接计算机的协议。 PPP 属于 OSI 参考模型的第 2 层,即数据链路层的协议。 PPP 不像以太网和 FDDI 等…

作者头像 李华