728x90
leetcode.com/problems/linked-list-cycle/
주어진 Linked List가 cycle 형태를 가지고 있는지 리턴
public class Solution {
public boolean hasCycle(ListNode head) {
if (head == null){
return false;
}
List<ListNode> nodeList = new LinkedList<>();
while (head.next != null){
if (nodeList.contains(head)){
return true;
}
nodeList.add(head);
head = head.next;
}
return false;
}
}
1️⃣ 노드가 없으면 false
2️⃣ 노드를 담을 List 변수 생성
3️⃣ List 변수에 노드를 담으면서 기존에 담은 노드가 있는 지 확인 (이미 있다면 cycle이므로 return true)
*️⃣ 문제점 : 노드를 전부 담아야하고, 담긴 노드중 노드가 있는 지 전부 확인해야해서 메모리 + 시간 모두 오래 걸림
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스] [카카오 인턴] 크레인 인형뽑기 게임 (0) | 2021.05.12 |
---|---|
[프로그래머스] [카카오 인턴] 키패드 누르기 (0) | 2021.05.08 |
[LeetCode] Palindrome Linked List (0) | 2021.05.06 |
[LeetCode] 19. Remove Nth Node From End of List (0) | 2021.05.06 |
[LeetCode] Delete Node in a Linked List (0) | 2021.05.06 |