給定一個鏈表嘴瓤,判斷鏈表中是否有環(huán)屑那。
為了表示給定鏈表中的環(huán),我們使用整數(shù) pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)纸巷。 如果 pos 是 -1身辨,則在該鏈表中沒有環(huán)匕垫。
示例 1:
輸入:head = [3,2,0,-4], pos = 1
輸出:true
解釋:鏈表中有一個環(huán)雏门,其尾部連接到第二個節(jié)點(diǎn)泞莉。
示例 2:
輸入:head = [1,2], pos = 0
輸出:true
解釋:鏈表中有一個環(huán)鼎姐,其尾部連接到第一個節(jié)點(diǎn)钾麸。
示例 3:
輸入:head = [1], pos = -1
輸出:false
解釋:鏈表中沒有環(huán)。
進(jìn)階:
你能用 O(1)(即炕桨,常量)內(nèi)存解決此問題嗎饭尝?
代碼
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {boolean}
*/
var hasCycle = function(head) {
if(head === null || head.next === null){
return false;
}
let slowNode = head;
let fastNode = head.next;
while(slowNode !== null && fastNode && fastNode.next !== null){
if(slowNode === fastNode){
return true;
}
slowNode = slowNode.next;
fastNode = fastNode.next.next;
}
return false;
};