zoukankan      html  css  js  c++  java
  • LeetCode 142——环形链表II(JAVA)

    给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 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
    解释:链表中没有环。

    直接上代码:

    /**
     * Definition for singly-linked list.
     * class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) {
     *         val = x;
     *         next = null;
     *     }
     * }
     */
    /*首先根据快慢指针判断是否有环,无环直接返回null
    有环,则根据*/
    public class Solution 
    {
        public ListNode detectCycle(ListNode head) 
        {
            if(head==null||head.next==null)
            {
               return null;
           }
           ListNode fast=head,slow=head;
           while(fast!=null&&fast.next!=null)
           {
               slow=slow.next;
               fast=fast.next.next;
               if(fast==slow)//确定有环
               {
                   break;
               }
           }
           
           if(fast==slow)//
           {
               ListNode q=head;
               while(q!=slow)
               {
                   q=q.next;
                   slow=slow.next;
               }
               return q;
           }
            else
            {
               return null;
            }
           
       }
    
    }

     首先判断快慢指针一定会相遇的数学证明参考这篇博文:https://blog.csdn.net/mucaoyx/article/details/81395782

    接下来看一下为什么当p指针和slow相遇的节点就是入环的节点。

    好了,看一下啊我的分析,严格数学的证明.......

     好了,看了上面的介绍,绝对可以搞懂这道题了!!!!!

    加油加油!!!!

  • 相关阅读:
    Django_05_模板
    Django_04_视图
    Django_03_后台管理
    Django_02_创建模型
    Django_01_创建图书管理项目
    Djang简介
    day_03比特币转账的运行原理
    day_02比特币的转账机制及其7个名词
    day01_人类社会货币的演变
    Socket问题
  • 原文地址:https://www.cnblogs.com/jiameng991010/p/11264456.html
Copyright © 2011-2022 走看看