首页 > 其他分享 >142. 环形链表 II

142. 环形链表 II

时间:2022-11-09 11:57:14浏览次数:66  
标签:II head 142 pos next 链表 null 节点

142. 环形链表 II

给定一个链表的头节点  head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null

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

不允许修改 链表。

示例 1:

输入:head = [3,2,0,-4], pos = 1
输出:返回索引为 1 的链表节点
解释:链表中有一个环,其尾部连接到第二个节点。

示例 2:

输入:head = [1,2], pos = 0
输出:返回索引为 0 的链表节点
解释:链表中有一个环,其尾部连接到第一个节点。

示例 3:

输入:head = [1], pos = -1
输出:返回 null
解释:链表中没有环。

提示:

  • 链表中节点的数目范围在范围 [0, 104]
  • -105 <= Node.val <= 105
  • pos 的值为 -1 或者链表中的一个有效索引

解法:快慢指针(快慢指针在环中相遇点meet,链表起始点head,让两指针以相同速度遍历,会在环入口相遇)

public class Solution {     public ListNode detectCycle(ListNode head) {         if (head == null || head.next == null) return null;         ListNode slow = head,fast = head;         while (fast != null && fast.next != null) {             slow = slow.next;             fast = fast.next.next;             if (slow == fast) {                 ListNode index1 = head;                 ListNode index2 = slow;                 while (index1 != index2) {                     index1 = index1.next;                     index2 = index2.next;                 }                 return index1;             }         }         return null;     } }

 

标签:II,head,142,pos,next,链表,null,节点
From: https://www.cnblogs.com/fulaien/p/16873135.html

相关文章

  • Yii2 DetailView用法
    Yii2DetailView用法控制器代码publicfunctionactionDetailView(){//获取一条记录$model=Resource::find()->with(['resourceType'])->where(['......
  • 遇到端口占用无法启动IIS Express服务器
    报错图片:上图所述由于端口被占用无法完成IISExpress的输出这时候要考虑到自己在Windows的IIS是不是配置了该端口?很明显,就是配置了一个8091的端口且还在启动中,这时候......
  • 19. 删除链表的倒数第 N 个结点
    19.删除链表的倒数第N个结点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:hea......
  • 代码随想录day44 | 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ
    完全背包文章思路有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物......
  • 代码随想录day43 | 1049. 最后一块石头的重量 II 494. 目标和 474. 一和零
    1049.最后一块石头的重量II题目|文章思路求剩余石头的最小重量。如果两个石头最接近总重量的平均值,那么剩余石头为最小重量。所以先求出石头的总重量的一半。1.数......
  • 206. 反转链表
    206.反转链表给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例......
  • 新建Maui工程运行到IiOS物理设备提示 Could not find any available provisioning pro
    在构建MAUIApp或MAUIBlazor时,您可能会收到以下CouldnotfindanyavailableprovisioningprofilesforiOS.PleaseenableAutomaticProvisioningfromtheiOS......
  • IIS配置无法写入framework路径下的临时文件夹下的某dll
    IIS配置无法写入framework路径下的临时文件夹下的某dll(配置IIS的正确操作)新配置IIS,将WebService项目放入指定目录。例如我放在D盘​​D:\WebService​​​。然后在计算机管......
  • 203. 移除链表元素
    203.移除链表元素给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6,3,4,5,......
  • 链表简单实现
    #include<stdlib.h>#include<stdio.h>#include<stdbool.h>#include<time.h>/*该链表不带头节点第一个节点下标从0开始*/#defineElementTypeint#defineERRO......