其他分享
首页 > 其他分享> > LeetCode Hot100 环形链表

LeetCode Hot100 环形链表

作者:互联网

1.

141

环形链表  

156950.4%简单

三个方法:

①快慢指针,总会相遇,注意while的条件要有head.next也存在,防止下图的情况发生,导致head.next没有next,会报错:

②ES6数据结构Map

③ES6数据结构Set,改天单独说一下这两个数据结构

var hasCycle = function(head) {
    // 法一:
    // let fast = head;
    // let slow = head;
    // while(fast && fast.next) {
    //     fast = fast.next.next;
    //     slow = slow.next;
    //     if(fast == slow) return true
    // }
    // return false
    // 法二:
    // let m = new Map();
    // while(head) {
    //     if(m.has(head)) return true; //地址相同就是 has这个结点
    //     m.set(head,1)//放啥都行  
    //     head = head.next
    // }
    // return false;
    // 法三:
    let m = new Set();
    while(head) {
        if(m.has(head)) return true; //地址相同就是 has这个结点
        m.add(head)//放啥都行  
        head = head.next
    }
    return false;
};

 

标签:head,slow,return,fast,next,链表,while,Hot100,LeetCode
来源: https://blog.csdn.net/xinkuIe/article/details/110296558