[LeetCode] 142. Linked List Cycle II

Chobby·2025년 1월 21일
1

LeetCode

목록 보기
172/194

😎풀이

해당 문제는 자료형 중 Set을 사용하여 풀이하면 쉬운 문제이다.

ListNodeSet에 저장해두고, 입력 받았던 적이 있는 ListNode라면, 순회하는 Cycle이 존재한다는 의미이므로 해당 ListNode를 반환하고 없다면 null을 반환한다.

/**
 * Definition for singly-linked list.
 * class ListNode {
 *     val: number
 *     next: ListNode | null
 *     constructor(val?: number, next?: ListNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.next = (next===undefined ? null : next)
 *     }
 * }
 */

function detectCycle(head: ListNode | null): ListNode | null {
    const set = new Set<ListNode>()

    let current = head
    while(current) {
        if(set.has(current)) {
            return current
        }
        set.add(current)
        current = current.next
    }
    return null
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글