对于环形链表的判断,想象成两个人在跑步,如果有环,终会见面
设置一个快指针和一个慢指针,如果二者有重逢,则返回true,没有就返回false
注意while的书写,是下文用到的指针都需要判断其是否有值,不然会报错
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {boolean}
*/
var hasCycle = function(head) {
let p1=head;
let p2=head;
while(p1 && p2 && p2.next) {
p1=p1.next;
p2=p2.next.next;
if(p1===p2) {
return true
}
}
return false
};