Mini
리트코드 141. Linked List Cycle // 플로이드 사이클 검사 본문
https://leetcode.com/problems/linked-list-cycle/description/
풀이1
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
HashMap<ListNode,Boolean> m = new HashMap<>();
while(head!=null){
if(m.containsKey(head)){
return true;
}
else{
m.put(head,true);
}
head=head.next;
}
return false;
}
}

풀이2 (플로이드 사이클)
public class Solution {
public boolean hasCycle(ListNode head) {
ListNode rabbit = head;
ListNode tutle = head;
while(rabbit!=null && rabbit.next!=null){
tutle = tutle.next;
rabbit = rabbit.next.next;
if(tutle==rabbit){
return true;
}
}
return false;
}
}

'Algorithm > 연결리스트' 카테고리의 다른 글
[알고리즘] 리트코드 19. 리스트 끝에서 N번째 노드 제거 c++ // 노드탐색 (0) | 2024.07.02 |
---|---|
리트코드 2. 두개의숫자추가 c++ // stoi 주의점, 노드 begin 저장방법, 두 링크드리스트 덧셈방법 (0) | 2024.06.20 |
[틀림] 프로그래머스 표편집 c++ // 연결리스트 직접구현 하는방법, 삽입삭제 되돌리기는 연결리스트(직접구현)! (0) | 2023.11.23 |
백준 1158 cpp // 연결리스트 풀이, int_to_string(int), List.erase() 주의사항 (0) | 2023.08.16 |
백준 5397 cpp// 연결리스트 메모장 (0) | 2023.08.14 |