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

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 或者链表中的一个有效索引

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/linked-list-cycle-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

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

相关文章:

  • java短网址平台
  • 【论文阅读】《知识图谱研究综述》;Knowledge Graph:概念及主要应用,主要特征、构建的主要技术、未来研究方向。
  • 通过Django发送邮件
  • 【数组】leetcode27.移除元素(C/C++/Java/Js)
  • Java命令行程序实战:javac编译,jar命令,jar包
  • 七种分布式系统的解决方案,一次性讲给你听!
  • 最长公共子序列
  • 异步通信技术AJAX | 基于JSON、XML的数据交换
  • 实战:一个脚本实现统计linux进程相关的信息
  • 免费开源的箱包制造行业ERP管理系统介绍
  • 【SpringBoot+Redis】实现多端登录+token自动续期和定期刷新+自定义注解和拦截器实现鉴权(角色和权限校验)
  • 跟着pink老师学JS的第三天总结
  • 嵌入式:ARM 汇编控制伪操作
  • 写给Java程序员的GRPC入门系列(3)
  • Python常用函数笔记汇总2
  • AI小组2022总结
  • 【jrebel and xrebel问题记录】激活时出现LS client not configued
  • css中动画之transition
  • QT学习 控件(一):按钮类
  • 数据治理:企业数据治理蓝图
  • A股三大股指收跌:地产股领跌,银行股再度走强
  • 媒体:每一个“被偷走的人生”,都该得到公道和正义
  • 伊朗最大港口爆炸:26公里外都能听到,超七百人受伤,原因指向化学品储存
  • 饶权已任国家文物局局长
  • 3岁男童疑遭父亲虐待,杭州警方:在异地发生,嫌疑人已被抓
  • “雷公”起诉人贩子王浩文案开庭:庭审中不承认拐走川川