Leetcode--142. 环形链表Ⅱ

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

为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

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

 

示例 1:

输入:head = [3,2,0,-4], pos = 1
输出:tail connects to node index 1
解释:链表中有一个环,其尾部连接到第二个节点。


示例 2:

输入:head = [1,2], pos = 0
输出:tail connects to node index 0
解释:链表中有一个环,其尾部连接到第一个节点。


示例 3:

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

思路:从环形链表那道题来看,当两个指针在环内相遇时,快指针比慢指针多走了n步,设环周长为k

则n%k==0

慢指针总共走了n步,设环外的长度为m,则它在环内走了n-m步,因此它再走m步就到达了环的入口处

所以我们让一个指针从起点开始走,当它与慢指针相遇时,它们都走了m步,相遇的地点就是入口

提交的代码:

/**
 * 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) {
         if(head==null||head.next==null)
        {
            return null;
        }
        ListNode slow,fast;
        slow = head;
        fast = head.next;
        while(slow!=fast)
        {
            if(fast.next==null||fast.next.next==null)
            {
                return null;
            }
            slow = slow.next;
            fast = fast.next.next;
        }
        slow = slow.next;
       // System.out.println(head.val);
        fast = head;
        while(fast!=slow)
        {
            fast = fast.next;
            slow = slow.next;
           // System.out.println(fast.val+"  "+slow.val);
        }
        return fast;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

他们提出了一个大胆的猜想:GWT(深度学习)→通用人工智能

来源:AI科技评论编译 :陈彩娴近日,有一篇发表在arXiv的论文“Deep Learning and the Global Workspace Theory”提出了一个大胆的猜想(或理论)。两位作者认为,当下的深度学习已经可以基于一个意识模型&…

科学史上那些盛极一时的“著名理论”是如何被攻破的?

《雅典学院》名画中的亚里士多德和柏拉图来源 :《自然》百年科学经典制版编辑: Morgan在科学发展的过程中,曾经涌现出不少盛极一时而后被证明是错误的理论。这些理论有的也许在今天看来悖谬荒诞,但是从整个科学发展的过程来看,它们仍然有其作…

AI在智能建筑中的应用和发展

来源:中研网图片来源:网络智能建筑诞生于二十世纪末,第一幢智能建筑于1984年在美国哈特福德 (Hartford)市建成。我国于90年代才起步,但迅猛发展势头令世人瞩目。目前,新技术、新产品在智能建筑中…

SpringBoot核心

1.基本配置 1.1入口类和SrpingBootApplication SpringBoot通常有一个名为*Application的入口类,入口类里有一个main方法,这个main方法就是一个标准的java应用的入口方法 。在main方法中使用SpringApplication.run,启动springboot项目。 其中EnablieAutoC…

grpc简单使用 java_gRPC学习记录(四)-官方Demo - Java 技术驿站-Java 技术驿站

了解proto3后,接下来看官方Demo作为训练,这里建议看一遍之后自己动手搭建出来,一方面巩固之前的知识,一方面是对整个流程更加熟悉.官方Demo地址: https://github.com/grpc/grpc-java例子是一个简单的路由映射的应用,它允许客户端获取路由特性的信息,生成…

冯端:漫谈物理学的过去、现在与未来

来源: 算法与数学之美撰文: 冯端 (南京大学物理系)“物理学的过去、现在和未来”是一个非常大而且重要的题目,也是一个非常难讲的题目,特别是涉及物理学的未来,结果往往是贻笑大方。这里以历史的透视为主线&#xff0c…

第四次博客

第四次博客 一、测试与正确性论证的比较 测试具有针对性,能从一些方面完美的展现出代码的正确性,但是它的验证度取决于样例的质量。 优点是方便,快捷,结果明显;缺点是可能不会覆盖到方方面面。 正确性论证能从所有的方…

院士论坛|李德仁:测绘遥感能为智能驾驶做什么? ——论测绘遥感与智能驾驶

来源: 中国测绘学会未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业…

Spring Boot-springbootHelloword(一)

什么是springboot sprng家族一个全新的框架 简化我们应用程序的创建和开发的过程,使用默认配置简化了我们以前传统的配置 springboot的特性 能够快速创建spring程序能够使用java main方法启动内嵌的 tomcat 或者jetty服务器运行spring boot程序提供约定的starter p…

原创工作发表难之叶公好龙

来源:张志东科学网博客链接地址:http://blog.sciencenet.cn/blog-2344-1265601.html 最近,科学网上一个热点话题是原创工作发表难不难?以真傻为代表的认为原创工作发表难,以王立新为代表的认为原创工作发表不难。那么&…

java字符的输入流_Java:字节流和字符流(输入流和输出流)

InputStream是抽象基类,所以它不可以创建对象,但它可以用来“接口化编程”,因为大部分子类的函数基类都有定义,所以利用基类来调用函数。FileInputStream是用来读文件数据的流,所以它需要一个文件对象用来实例化&#…

任正非内部重磅发言:华为不可能简单学阿里、亚马逊

来源:券商中国辞旧迎新之际,华为创始人任正非此前在华为企业业务及云业务汇报会上的发言于华为心声社区曝光。任正非指出,华为企业业务要聚焦战略重点,继续做减法,收缩企业业务做战线,认真弄清楚做作战模型…

java8 迭代set集合_JavaSE(八)集合之Set

2.2、HashSet特点不能保证元素的排列顺序,顺序可能和添加的顺序不同,顺序也有可能发生变化。HashSetf不是同步的,如果多个线程同时来访问一个 HashSet,假设有两个或者两个以上线程同时修改了HashSet 集合时,则必须通过…

AI 发展方向大争论:混合AI ?强化学习 ?将实际知识和常识整合到AI中 ?

一个仿人机器人的延伸手。机器人常常使用强化学习来加以训练来源:云头条作者:Ben Dickson是一名软件工程师,还是探讨技术在如何解决和带来问题的TechTalks博客的创始人。2010年代对于AI界来说意义重大,这归功于深度学习领域取得了…

吴恩达:2020 年,这些 AI 大事件让我无法忘怀...

作者:吴恩达编译:陈大鑫、贝爽编辑:青暮转自:AI科技评论日前,吴恩达在圣诞节之际回顾了2020年AI的一些重大事件,包括AI应对新冠疫情、数据集存在种族偏见、对抗虚假信息算法、AlphaFold预测蛋白质三维结构、…

java工程师的一生_百看不厌之一张图诠释程序员的一生

原标题:百看不厌之一张图诠释程序员的一生01百看不厌系列之一张图诠释程序员的一生。02变得越来越强了...03不知道是干什么的,但又不敢删。。。04当前端的人抱怨Java 时,C程序员05给产品经理设计了一款趁手的宝贝06离职程序员交接项目07这位压…

好久没玩laravel了,5.6玩下(三)

好久没玩laravel了,5.6玩下(三) 好了,基础的测试通了,咱们开始增删改了 思路整理 先创建项目功能控制器 然后设置路由访问规则 然后开发项目的增删改功能 1 先创建项目的控制器 php artisan make:controller ProjectsC…

OpenAI祭出120亿参数魔法模型!从文本合成图像栩栩如生,仿佛拥有人类的语言想象力...

来源:AI科技评论作者:OpenAI编译:贝爽、陈大鑫前几个月GPT-3刚刚问世的时候,能够根据一段话就写出一个小说、一段哲学语录,就足以令AI圈为之感到兴奋。然而2020年刚刚开始没多久,OpenAI又实现一重大突破&am…

MySQL快速生成连续整数

很多时候需要用到连续的id进行数据对比,如判断是否连续等问题。那么,生成连续整数的方式有多种,首先容易想到的是逐步循环,如果想生成1kw条记录,则需要循环1kw次进行插入,那么有没有其他方式呢,…

MySQL小问题:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents...

这是因为时区设置不对 问题背景: 在运行storm项目,进行页面显示的时候,报错: java.sql.SQLException: The server time zone value is unrecognized or represents more than one time zone. 这是时区的问题。 我采用的第一个…