JAVA_LeetCode 142_Linked List Cycle II 풀이 public class Solution { public ListNode detectCycle(ListNode head) { if(head == null) return null; // 사이클을 돌기 위해 O(1)의 조건에 맞도록 포인터를 사용 ListNode slow = head; ListNode fast = head; // 포인터 비교를 위해 각각 1, 2칸 이동으로 적용 while(fast != null && fast.next !
= null){ slow = slow.next; // 느린 포인터는 1칸 이동 fast = fast.next.next; // 빠른 포인터는 2칸 이동 if(slow == fast){ // 두 포인터가 만나면 사이클 존재하니까 시작 노드 찾기 slow = head; // 느린 포인터를 head로 이동(손바뀜) // 두 포인터 모두 한 칸씩 이동 while(slow != fast){ s...