通俗易懂-对于快慢指针找到链表环入口的理解

2023-05-16

*图1  链表环*图2 含环链表
图1是一个链表环,此链表有8个结点,分别为A-H。假设起点为G,快指针fast和慢指针slow都从G出发,慢指针一次遍历一个结点,快指针一次遍历两个结点,无论他们走多少圈,快慢指针fast和slow相遇的点总是G点,这个毋庸置疑,即slow和fast相遇的第一个结点为G点。
再看图2,将图1的G点到A点的结点扯平得到图2,那么同样的slow和fast还是从G点出发,按照图1的规则,slow和fast相遇的第一个点还是G点,因为当slow走到G’点的时候 fast已经走了两圈,第一圈是从G走到G’,第二圈是从G’到G’ ,这就是slow和fast指针相遇的全过程,此时应该很明了了,G’到A的节点数和G到A的节点数相同,因为从图1和图2的角度看,就相当于将图1的G点到A点扯平了,变成图2了,,,,
此时只需要两个slow指针,一个slow1从G点出发,一个slow2从G’点出发,slow1和slow2相遇的地方就是入口A点。。。。
是不是超级无敌很清晰明了简单 hhhh 代码的话网上应该有很多。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通俗易懂-对于快慢指针找到链表环入口的理解 的相关文章

随机推荐

  • redis解决分布式定时任务问题

    场景分析 xff1a 多服务器针对于定时任务带来的问题 xff0c 保证任务只在一个服务器上在执行 解决方案1 xff1a 只对一个服务器上的应用开启定时任务 xff0c 通过配置文件参数来设置 xff0c 不推荐 解决方案2 xff1a
  • Java堆中的分区

    Java堆分区 1 新生代 xff1a 新生代中分为Eden xff0c ServicorTo xff0c ServicorFrom区 Eden俗称伊甸区 xff0c 顾名思义 xff0c 就是新对象首次存在的区域 之后 xff0c 对象会
  • 打好基础之try-catch-finally执行顺序

    try catch finally是用来捕获异常 xff0c 保证程序的执行 先看一小段代码 xff1a public class TryCatchDemo public static void main String args div 4
  • Flask

    文章目录 Flask简介学习资料基本概念部署环境配置安装 Python3在Linux中配置Python3的虚拟环境配置Git安装第三方包 开始部署部署方式一 xff1a 直接启动部署方式二 xff1a gunicorn部署方式三 xff1a
  • iOS本地数据搜索 - UISearchController的简单实用

    在页面数据很多的时候我们通常会被要求加一个本地的搜索功能 xff0c 苹果给我们提供了一个封装的很好的控件UISearchController xff0c 下边介绍一下他的简单使用 定义需要的全局变量并初始化 span class hljs
  • 矩阵遍历问题

    这里记录些常见的矩阵遍历问题 xff0c 矩阵遍历没有什么简单的方法 xff0c 必须要遍历矩阵的每个元素 xff0c 因此在时间复杂度上没有什么简单的方法 xff0c 不过遍历时的方式可以不同 首先看下面例题 leetcode54 给定一
  • ubuntu系统添加环境变量3种方法

    说明 工作中 xff0c 我们自己编译安装的软件 xff0c 在系统中是无法在全局目录下自动识别的 xff0c 只能进入到相关目录下才能运行 xff0c 如在命令行下运行编译安装的php程序 xff0c 就得 usr local LAMP
  • Codeforces 897C(递归)

    点击打开链接 扎心题 xff0c 当时想法完全正确 xff0c 姿势不对 xff08 思维不够细腻 xff09 没过 题意 xff1a 给出四个字符串x y f0 z xff0c 并且给出递推公式 xff1a fi 61 x 43 fi 1
  • 天气预报API汇总

    目录 文章目录 一 天气预报平台 1 中国气象平台 2 心知天气 3 实况天气 4 YY天气 5 聚合天气 6 和风天气 7 彩云天气 8 咕咕天气 9 彩云天气 总结 一 天气预报平台 1 中国气象平台 优点 xff1a 中国气象局对外提
  • ResizeObserve 在 Echarts 的使用

    前言 前端图表经常要进行 resize 操作 xff0c 一般我们会想到监听 window resize event xff0c 但是这个事件只能监听 window 窗口大小的改变 xff0c 没有办法监听到某个div大小的改变 目前解决方
  • 运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar

    运行java命令出现 Error Invalid or corrupt jarfile XXX jar 基本可以断定 xff0c 是jar不完整导致的 不完整 xff01 xff01 xff01 记住关键字 检查1 xff1a 检查是不是传
  • 页面间传值的方式

    从一个页面转向另一个页面的请求方式有两种 xff0c Post和Get 如果从原理上来探究他们的区别 xff0c 涉及到Http传输协议的细节 xff0c 这样深究下去 xff0c 就成华为人干的事了 xff0c 有空可以请教一下华为高人
  • 你现在无法访问 xxx.xxxx.com,因为网站使用的是 HSTS。网络错误和攻击通常是暂时的,因此该页面以后可能会恢复正常

    你现在无法访问 xxx xxxx com xff0c 因为网站使用的是 HSTS 网络错误和攻击通常是暂时的 xff0c 因此该页面以后可能会恢复正常 自己本地通过openSSL和nginx 搭建https证书 xff0c 过段时间通过域名
  • VMware通过vmdk安装Kali linux

    1 根据官网指引下载VMware专用kali linux版本 2 打开虚拟机 xff0c 文件 gt 扫描虚拟机 3 文件路径选择kali压缩包解压出来的文件夹的路径 4 点击下一步 xff0c 点击完成即可 5 这个就是我们刚刚创建的ka
  • 为什么中断子程序中不能使用延时和过长的程序?

    A回答 xff1a 通常在中断子程序中是不调用延时子程序的 xff0c 这样会增加中断处理时间 xff0c 如果有其它低级中断了 xff0c 就会延误响应中断了 所以 xff0c 中断子程序中不要写调用延时子程序 xff0c 中断子程序也不
  • iOS多线程详解:实践篇

    iOS多线程实践中 xff0c 常用的就是子线程执行耗时操作 xff0c 然后回到主线程刷新UI 在iOS中每个进程启动后都会建立一个主线程 xff08 UI线程 xff09 xff0c 这个线程是其他线程的父线程 由于在iOS中除了主线程
  • 【Qt】显示文件/文件夹下所有文件的路径

    一 条件与目的 给一个正确的文件夹绝对路径 xff0c QString字符串形式 要求打印出其中所有子目录以及其下的全部文件路径 二 废多看崩 名称 xff1a 遍历显示函数 参量 xff1a path 绝对路径 方法类 xff1a QDi
  • CMD执行命令行时卡住的问题

    公司编译工程项目时用了一些bat文件以命令行的方式来自动完成编译过程 xff0c 但是发现一个问题 xff0c 执行bat的时候Windows下弹出命令行窗口 xff0c 总是会时不时出现 假死 的情况 xff0c 然后命令执行就停在那里了
  • GET、POST、PUT、DELETE请求方式的区别以及用途

    1 GET GET请求是用来获取数据的 xff0c 不对服务器的数据做任何的修改 xff0c 新增 xff0c 删除等操作 GET请求就像数据库的SELECT操作一样 xff0c 只是用来查询一下数据 xff0c 不会修改 增加数据 xff
  • 通俗易懂-对于快慢指针找到链表环入口的理解

    图1是一个链表环 xff0c 此链表有8个结点 xff0c 分别为A H 假设起点为G xff0c 快指针fast和慢指针slow都从G出发 xff0c 慢指针一次遍历一个结点 xff0c 快指针一次遍历两个结点 xff0c 无论他们走多少