LeetCode Hot100 环形链表
作者:互联网
1.
141 | 1569 | 50.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