【剑指offer】面试题23:链表中环的入口节点

一个链表中包含环,请找出该链表的环的入口结点

代码:

package offer;
class Node3
{
    int val;
    Node3 next = null;
    Node3(int val)
    {
        this.val = val;
    }
}
public class ti23 {
    public static Node3 FindInterNode(Node3 head)
    {
        if(head==null||head.next==null)
        {
            return null;
        }
        Node3 fast = head;//快指针每次走两步
        Node3 slow = head;//每次走一步
           while(fast!=null && fast.next !=null)//因为fast每次要走两步,所有需要判断fast的下一个是否为空
           {
               slow = slow.next;
               fast = fast.next.next;
               //判断是否相遇 相遇后让快指针从头开始走,每次都是走一步,第二次相遇的节点就是环的入口
               if(fast.val == slow.val)
               {
                  fast = head;
                  while(fast.val != slow.val)
                  {
                      fast = fast.next;
                      slow = slow.next;
                  }
               }
               if(fast.val == slow.val)
               {
                   return slow;
               }
           }
           return null;//要是没有相遇,此链表没有环返回空
    }
    public static void main(String[] args)
    {
        Node3 node1 = new Node3(1);
        Node3 node2 = new Node3(2);
        Node3 node3 = new Node3(3);
        Node3 node4 = new Node3(4);
        Node3 node5 = new Node3(5);
        Node3 node6 = new Node3(6);
        node1.next = node2;
        node2.next = node3;
        node3.next = node4;
        node4.next = node5;
        node5.next = node6;
        Node3 head = node1;
        node6.next = node3;
        System.out.println(FindInterNode(head).val);
    }
}
 

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

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

相关文章

(4.14)向上取整、向下取整、四舍五入取整的实例

Sql Server 里的向上取整、向下取整、四舍五入取整的实例! 2012年12月31日 07:33:43 阅读数:102170 【四舍五入取整截取】select round(54.56,0) 【向下取整截取】 SELECT FLOOR(54.56) 【向上取整截取】 SELECT CEILING(13.15)以下转自:…

MVC5+EF6 入门完整教程11--细说MVC中仓储模式的应用

MVC5EF6 入门完整教程11--细说MVC中仓储模式的应用 原文:MVC5EF6 入门完整教程11--细说MVC中仓储模式的应用摘要: 第一阶段1~10篇已经覆盖了MVC开发必要的基本知识。 第二阶段11~20篇将会侧重于专题的讲解,一篇文章解决一个实际问题。 根据…

Java Web实现信息管理

Java Web实现信息管理 前言: 大二上学期刚学完Oracle,老师就要求用Java语言操作Oracle,当时真的是懵了。回顾自己前两年的生活,大一上学期学习C语言,下学期学习Java,当时教课老师是学硬件的。课上讲一些理…

【剑指offer】面试题25:合并两个排序的链表(Java 实现)

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。 代码: package offer; class Node5 { int val; Node5 next null; Node5(int val) { this.val val; } } public class…

计算机科学界至今未解决的四大难题

作者:Shalitha Suranga译者:弯月 责编:张文出品:CSDN(ID:CSDNnews)在现实生活中,很多难题的解决方案都用到了计算机科学的基础理论。例如, Git 分布式版本控制系统建立…

PHP正则匹配到2个字符串之间的内容,匹配HTML便签内容

PHP正则匹配到2个字符串之间的内容 $preg /xue[\s\S]*?om/i; preg_match_all($preg,"学并思网址xuebingsi.com",$res); var_dump($res[0][0]); 匹配HTML便签内容 假如需要匹配下面HTML字符串里面的第三个<img> 把它替换掉,或者删除掉这样个需求 $string <p…

【剑指offer】面试题24:反转链表(Java 实现)

输入一个链表&#xff0c;反转链表后&#xff0c;输出新链表的表头。 代码&#xff1a; package offer; class Node4 { int val; Node4 next null; Node4(int val) { this.val val; } } public class ti24 { public static Node4 ReverseL…

按字编址与按字节编址

按字编址与按字节编址 要清楚按字编址和按字节编址的区别&#xff0c;先要知道 比特(bit)&#xff0c;字节(byte)&#xff0c;字(word) 之间的关系。 在计算机系统中&#xff0c;总线以固定大小的一块数据进行传输&#xff0c;这一块的数据也称为字(word)&#xff0c;如今的计…

2021年AI关键趋势,AI芯片初创公司可能发生并购

来源&#xff1a;雷锋网作者&#xff1a;包永刚编译&#xff1a;雷锋网人工智能&#xff08;AI&#xff09;和机器学习仍然是技术决策者、行业人士和投资者关注的重点。标普全球市场财智&#xff08;S&P Intelligence&#xff09;2020 7月发布的调查显示&#xff0c;有58%的…

English trip -- VC(情景课)5 Around Town

Around Town 城市周围 Talk about the picture 看图说话 sentences Where are you&#xff1f; Im in the Meten classroom. What do you do? I study English at the school. I eat dinner at the restaurant I go shopping at the supermarket Do you study English at th…

CPU组成结构

CPU组成结构 CPU总体构图 CPU中央处理器&#xff08;Central Processing Unit&#xff09; CPU的结构框图&#xff1a;CPU内部由ALU&#xff08;算术逻辑单元&#xff09;、CU&#xff08;控制器&#xff09;、寄存器&#xff08;PC、IR、PSW、DR、通用寄存器等&#xff09;、…

【剑指offer】面试题26: 树的子结构(Java)

输入两棵二叉树A&#xff0c;B&#xff0c;判断B是不是A的子结构。&#xff08;ps&#xff1a;我们约定空树不是任意一个树的子结构&#xff09; 代码&#xff1a; package offer; class TreeNode { int val; TreeNode left null; TreeNode right null; Tr…

每一个科学家的内心都住着一位哲学家(节选)

来源&#xff1a;腾讯大学&#xff08;ID: tencent_university)作者&#xff1a;张首晟&#xff08;斯坦福大学&#xff09;不少科学家的哲学造诣都很高。在哲学中&#xff0c;有着正负对立的世界观&#xff1a;有阴必有阳、有正必有负、有天使就会有魔鬼。这种哲学观念是如何在…

win10安装RabbitMQ

安装Erlang 去官网下载Erlang的最新版本&#xff1a;https://www.erlang.org/downloads 我这里下载的是OTP 21.0.1 Windows 64-bit Binary File。 下载下来点击一步步进行安装&#xff0c;我的安装位置是D:\Program Files\erl10.0.1 安装好之后&#xff0c; 添加环境变量ERLANG…

总结下载Spring Framework的jar包

总结下载Spring Framework的jar包 下载官网&#xff1a;Spring官网

ros2中gazebo安装的注意事项

Install From source&#xff08;推荐安装Fortress版本&#xff0c;好像很方便&#xff09; ROS Be sure youve installed ROS Humble (at least ROS-Base). More ROS dependencies will be installed below. Gazebo Install either Edifice, Fortress, or Garden.(没有har…

谷歌对2021年的六个预测:数据和云技术的革命即将到来

来源&#xff1a;AI前线作者&#xff1a;Debanjan Saha译者&#xff1a;平川策划&#xff1a;钰莹预测是充满挑战的&#xff0c;因为具体的预测取决于特定的时间框。但从云应用方面表现出的趋势来说&#xff0c;我们 2020 年看到的一些事情可能预示着 2021 年可能出现的变化。经…

Vue笔记:webpack项目vue启动流程

VUE启动流程 1. package.json 在执行npm run dev的时候&#xff0c;会在当前目录中寻找 package.json 文件, 有点类似 Maven 的 pom.xml 文件&#xff0c;包含项目的名称版本、项目依赖等相关信息。 { # 版本信息"name": "kitty-ui","version":…

IntelliJ IDEA汉化版jar包

IntelliJ IDEA汉化版jar包 链接&#xff1a;IntelliJIDEA汉化版jar包 提取码&#xff1a;ymdx

哈工大等实现人工肌肉重大突破登上 Science!多国科学家联合实现全新驱动机理...

来源&#xff1a;雷锋网2021 年&#xff0c;机器人已经「成精」了&#xff0c;公然吵架、组团热舞再也不是人类专属。然鹅在很多人心里&#xff0c;机器人还是僵硬、机械甚至冰冷的。即便如此&#xff0c;技术日新月异&#xff0c;柔性机器人快速发展&#xff0c;我们对机器人的…