LeetCode-初級-連結串列-環形連結串列(JavaScript)
阿新 • • 發佈:2019-02-05
給定一個連結串列,判斷連結串列中是否有環。
進階:
你能否不使用額外空間解決此題?
思路:
設定兩個指標p1,p2。
p1每次走一步,p2每次走兩步。
若沒有環,則兩者不會碰到,若有環,則必然會碰到。
/** * 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 || !head.next) return false let p1 = head, p2 = head.next; while (p2 && p2.next) { if (p1 === p2) return true; p1 = p1.next; p2 = p2.next.next; } return false; };