142. 环形链表 II(链表)[通俗易懂]

142. 环形链表 II(链表)[通俗易懂]给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释:链表中有一个环,其尾部

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。

说明:不允许修改给定的链表。

进阶:

你是否可以使用 O(1) 空间解决此题?

示例 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 或者链表中的一个有效索引
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */
class Solution { 
   
public:
    ListNode *detectCycle(ListNode *head) { 
   
        ListNode *slow = NULL,*fast = NULL,*ptr = head;
        if(head == NULL || head -> next == NULL)return NULL;
        slow = head -> next,fast = head -> next ->next;

        while(fast != NULL){ 
   
            if(slow == fast){ 
   
                while(slow != ptr){ 
   
                    slow = slow -> next;
                    ptr = ptr -> next;
                }
                return ptr;
            }
            slow = slow -> next;
            if(fast -> next == NULL)return NULL;
            fast = fast -> next -> next;
        }
        return NULL;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168553.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月9日 下午4:16
下一篇 2022年8月9日 下午4:36


相关推荐

  • 为知笔记怎么导入文件「建议收藏」

    为知笔记怎么导入文件「建议收藏」方法1:拖动文件到左侧的笔记文件夹方法2、鼠标右键文件,选择发送到—》为知笔记

    2022年8月31日
    6
  • termius设置中文 v7.0.1附使用教程

    termius设置中文 v7.0.1附使用教程提起 Windows 平台远程终端 XShell 的大名想必不用多说了 但它也只有 Windows 版本 携带非常不方便 为此小编今日要推荐的是 termius 全平台的远程终端 该软件不仅涵盖了 Windows Linux OSX 还支持 Android 和 iOS 能够帮助用户随时随地排查线上问题 可真是广大程序员的福音呀 而且它相比较于其他同类软件而言 界面简洁大方且非常美观 只需注册一个账户即可配置多个终端同步 还允许你将主机组织成组 并可以共享设置 但是每个主机可以有自己独立的首选项 这些数据以及连接和命令历史记录可

    2026年3月19日
    4
  • Map和Set的区别_list与set的区别

    Map和Set的区别_list与set的区别目录一、简述二、Map三、Set四、Set和Map区别一、简述Set和Map主要的应用场景在于数据重组和数据储存。Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构。集合(Set):ES6新增的一种新的数据结构,类似于数组,成员唯一(内部元素没有重复的值)。且使用键对数据排序即顺序存储。Set本身是一种构造函数,用来生成Set数据结构。Set对象允许你储存任何类型的唯一值,无论是原始值或者是对象引用。二、Ma…

    2025年9月24日
    5
  • Linux 测试IP和端口是否能访问[通俗易懂]

    Linux 测试IP和端口是否能访问[通俗易懂]一、使用wget判断wget是linux下的下载工具,需要先安装.用法:wgetip:port连接存在的端口连接不存在的端口二、使用telnet判断telnet是windows标准服务,可以直接用;如果是linux机器,需要安装telnet.用法:telnetipport安装telnet1、检测telnet-server的rpm包是否安装……

    2025年12月13日
    5
  • IV值和WOE值的理解

    IV值和WOE值的理解1 IV 的用途 IV 的全称是 Information nbsp Value 中文意思是信息价值 或者信息量 我们在用逻辑回归 决策树等模型方法构建分类模型时 经常需要对自变量进行筛选 比如我们有 200 个候选自变量 通常情况下 不会直接把 200 个变量直接放到模型中去进行拟合训练 而是会用一些方法 从这 200 个自变量中挑选一些出

    2026年3月18日
    1
  • AngularDart Material Design 图标「建议收藏」

    AngularDart Material Design 图标「建议收藏」AngularDart Material Design 图标

    2022年4月20日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号