141. Linked List Cycle

Bas·2022년 8월 14일
0

Leetcode

목록 보기
4/11

사이클을 도는 linked list면 true, 사이클을 돌지 않는 linked list면 false를 반환한다. (pos는 tail이 가리키고있는 인자의 index값이다.)

point

토끼와 거북이 알고리즘

/**
 * 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) return false;
    
    let slow = head;
    let fast = head;
    
    while (fast && fast.next) {
        slow = slow.next;
        fast = fast.next.next;
        if (slow === fast) {
            return true;
        }
    }
    return false;
};

?

fast와 slow를 찍으면

Error - Found cycle in the ListNode Error - Found cycle in the ListNode

콘솔에 이런 에러가 뜬다. 근데 slow.val, fast.val로 비교하기에는 값은 다른 index에 있는 값이라도 같을 수 있어서 slow.val, fast.val를 비교하는건 안되는데 저거 두개는 왜 콘솔 찍으면 에러나오고 실행은 됨? 뭐지...

profile
바스버거

0개의 댓글