본문 바로가기

[ leetcode ]

141. Linked List Cycle

반응형
SMALL

링크드 리스트가 순환하냐 묻는 문제.

 


solution 1.

1개씩 다음 노드를 넘어감과 2개씩 다음 노드를 넘어감을 체크했을 때 1개씩과 2개씩 넘어가는 노드가 같아질 때가 존재할 때 순환한다고 생각한다.

 

class Solution:
    def hasCycle(self, head: Optional[ListNode]) -> bool:

        slow = fast = head
        while fast and fast.next:
            fast = fast.next.next
            slow = slow.next
            if slow == fast:
                return True
        return False

 

조건은 2개씩 넘어가는 노드가 현재 그리고 다음이 존재하여야 순환한다고 생각한다. 아니면 순환하지 않는다고 리턴한다.

반응형
LIST

'[ leetcode ]' 카테고리의 다른 글

202. Happy Number  (0) 2023.01.15
160. Intersection of Two Linked Lists  (0) 2023.01.03
118. Pascal's Triangle  (0) 2022.12.27
101. Symmetric Tree  (0) 2022.12.20
94. Binary Tree Inorder Traversal  (0) 2022.12.18