当前位置: 首页 > news >正文

链表-环形链表||

文章目录

    • 142.环形链表||

142.环形链表||

题目链接:

142.环形链表||

题目描述:

给定一个链表的头节点  head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。

在这里插入图片描述
在这里插入图片描述

提示:链表中节点的数目范围在范围 [0, 104]-105 <= Node.val <= 105
pos 的值为 -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) {ListNode fast = head;//快指针ListNode slow = head;//慢指针;ListNode index1;//记录相遇的时候的指针;ListNode index2=head;//记录开始的位置的指针while(fast!=null&&fast.next!=null){//因为fast每次都得走两步,所以循环条件要有两步判断的都不为空fast = fast.next.next;//快指针走两步;slow = slow.next;//慢指针走一步;if(slow == fast){//快慢指针相遇了,说明有环。有环了之后我们要找入口,根据推到x=z;index1 = fast;//记录一下相遇的位置;index2 = head;//从头开始while(index1!=index2){//只要他俩不相等,就是没有相遇,我们就一直走index1 = index1.next;index2 = index2.next;}//循环结束的时候我们找到了入口:return index1;//return index2也行,都一样,因为循环结束的时候他们指向的是同一位置。}}return null;//如果程序没走if证明没有环,返回空。}
}

思路:在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/591463.html

相关文章:

  • 3.8.2 利用RDD计算总分与平均分
  • Java 多线程编程:解锁高性能应用开发的密钥
  • RAG系统实战:文档切割与转换核心技术解析
  • Golang 访问 map 中的结构体字段时如何避免拷贝
  • 无anaconda搭建yolo11环境
  • 鸿蒙进阶——CMakelist、GN语法简介及三方库通用移植指南
  • 技术篇-2.3.Golang应用场景及开发工具安装
  • 晶振选型三大陷阱:工作温度、电压与负载电容的隐藏矛盾
  • 【AT32】 at32 软复位
  • mssql查询历史执行过的语句日志
  • 提示词工程驱动Mermaid图表生成:技术原理与实战案例
  • 力扣面试150题-- 二叉树展开为链表
  • MYSQL备份与恢复
  • 【灵动Mini-F5265-OB】环境搭建以及按键串口驱动
  • ganache-ui使用
  • OminiScenes代码阅读
  • PyQt学习系列03-动画与过渡效果
  • 【部署】如何离线环境创建docker容器执行python命令行程序
  • 在 LangChain 中集成 Mem0 记忆系统教程
  • 向量数据库及ChromaDB的使用
  • SQL基础概念以及SQL的执行方式
  • YOLO篇-3.1.YOLO服务器运行
  • const修饰指针
  • 【信息系统项目管理师】第15章:项目风险管理 - 55个经典题目及详解
  • 参数化建模(二):避免踩坑!优劣分析与选择诀窍
  • 禅道隐藏版权信息
  • 安装openresty使用nginx+lua,openresty使用jwt解密
  • upload-labs通关笔记-第18关文件上传之条件竞争
  • 数据结构篇--二项队列
  • linux服务器查看端口是否被占用