zoukankan      html  css  js  c++  java
  • leetcode 141.环形链表

    给定一个链表,判断链表中是否有环。(不使用额外空间)

    示例:a-b-c-b

    思路:

    1.快慢指针方法

    设置两个指针,快指针每次走两步,慢指针每次走一步,如果是环形的话快指针一定会追上慢指针,等到快指针和慢指针相等的时候,就返回true。否则就返回false

    var hasCycle = function(head) {
            //1.判断不存在的情况
            if (!head || !head.next) {
                return false
            }
            //2.双指针循环
            var fast = head.next
            var slow = head
            //2.1快指针每次走两步,慢指针每次走一步,如果快指针一直有值,那就证明是环形,直到两个相等就退出
            while(fast && fast.next){
                if(fast == slow) {
                    return true
                }
                fast = fast.next.next
                slow = slow.next
            }
            //2.2否则,就不是环形
            return false
        };

    2.不知道是什么方法

    var hasCycle = function(head) {
            while(head != null){
                if(head == head.next){
                    return true;
                }
                if(head.next != null){
                    head.next = head.next.next;
                }
                head = head.next;
            }
            return false;
        };

    这种方法会破坏链表结构,不推荐

    不积跬步无以至千里
  • 相关阅读:
    关于Combobox的多选和单选情况
    Struts2的method{1}用法
    ${sessionScope.user}的使用方法
    jQuery 遍历
    jQuery的Event对象(实例)。
    度熊全是由1构成的字符串
    Prime Ring Problem
    八皇后问题
    Hanoi
    全排列
  • 原文地址:https://www.cnblogs.com/lyt0207/p/12359354.html
Copyright © 2011-2022 走看看