zoukankan      html  css  js  c++  java
  • leetcode 141.环形链表(双指针 java)

    给定一个链表,判断链表中是否有环。

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

    示例 1:

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


    双指针,一个指向头节点,一个指向头结点的下一个,一个每次移动一步,另一个每次移动两步,这样两个指针就移动速度不同,就像两个运动员围着操场跑,速度不同,总会相遇,所以如果有环,那么两个指针会相遇,注意判断条件的设置即可。

    /**
     * Definition for singly-linked list.
     * class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) {
     *         val = x;
     *         next = null;
     *     }
     * }
     */
    public class Solution {
        public boolean hasCycle(ListNode head) {
            if(head==null) return false;              //*注意
            ListNode l1=head,l2=head.next;
            while(l1!=null && l2!=null && l2.next!=null){           //注意判断条件l2.next!=null
                if(l1==l2)
                    return true;
                l1=l1.next;
                l2=l2.next.next;
            }
            return false;
        }
    }
  • 相关阅读:
    Travis 编译使用 JDK 的版本
    《程序员的职业素养》读书笔记
    先做人,在做事
    CAP理论
    ZGC实践
    虚拟化技术的分类及介绍
    C# AD域验证登录
    dotnet core 3.1 站点发布成windows服务
    windows 服务无法调用office word COM接口
    Ext 动态加载js文件
  • 原文地址:https://www.cnblogs.com/y1040511302/p/11443684.html
Copyright © 2011-2022 走看看