news 2026/6/10 18:58:36

力扣题目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/6/10 15:57:04

【毕业设计】基于springboot的云与糖蛋糕购物平台系统的设计与实现(源码+文档+远程调试,全bao定制等)

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

作者头像 李华
网站建设 2026/6/10 14:45:46

计算机Java毕设实战-基于springboot的实验室预约系统的设计与实现基于SpringBoot+Vue的实验室管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

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

作者头像 李华
网站建设 2026/6/10 17:29:15

5.设计模式-工厂方法模式

定义&#xff1a;定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 简单工厂模式 需求 一个大学生&#xff0c;以学雷锋做好事的名义去帮助老人做事。 代码 #include <stdio.h> #include <stdlib.h>ty…

作者头像 李华
网站建设 2026/6/9 19:23:53

系统文件eapprovp.dll丢失或损坏 免费下载修复方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/10 15:40:29

用COMSOL Multiphysics探索液滴铺展的数值模拟世界

[1]模型简介&#xff1a;COMSOL Multiphysics对液滴铺展进行数值模拟研究。 [2]案例内容&#xff1a;数值模型二个个 [3]模型特色&#xff1a;采用了两种不同的方法&#xff08;层流相场&#xff0c;层流水平集&#xff09;做液滴铺展&#xff0c;考虑了不同的条件&#xff0c;…

作者头像 李华