解法一:快慢指针
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {boolean}
*/
// var hasCycle = function (head) {
// // 定义一个快指针和一个慢指针
// let fast = head
// let slow = head
// // 循环快慢指针
// while(slow && fast && fast.next){
// // 慢指针移动一步,快指针移动两步,相等时相遇
// slow = slow.next
// fast = fast.next.next
// if(slow == fast){
// return true
// }
// }
// return false
// };ˇ
解法二:
// JSON.stringify()方法在对象出现循环引用的时候会报错
var hasCycle = function (head) {
// JSON.stringify()方法在对象出现循环引用的时候会报错
try {
JSON.stringify(head)
} catch {
return true
}
return false
};