본문 바로가기

leetcode

서로 다른 두 연결리스트의 교차점 찾기 leetcode 160. Intersection of Two Linked Lists 문제풀이. 문제: 서로 다른 두 연결리스트가 주어졌을 때, 첫 교차점을 찾아라. Hash Set 1. A 리스트를 먼저 순회하며 hash set에 노드들을 저장한다. 2. B 리스트 순회하며 노드들이 이미 hash set에 저장되어있는지 확인한다. 이미 저장되어 있다면 해당 노드를 반환한다. 3. 무사히 B리스트 순회를 마지막 노드까지 마쳤다면, 교차되는 노드가 없다는 뜻이므로 null을 반환한다. Floyd's Tortoise and Hare algorithm 이 문제 또한 토끼와 거북이 알고리즘으로 메모리를 사용을 O(1)으로 줄여줄 수 있다. Time Complexity: O(N) Space Complexity: O.. 더보기
연결리스트 사이클이 시작되는 노드 찾기 leetcode 142. Linked List Cycle II 문제풀이 문제: 주어진 연결리스트에서 사이클이 없다면 null을, 있다면 사이클이 시작되는 노드를 반환하라. 1. 주어진 노드를 Hash Set에 추가하면 순회한다. 2. 이미 Hash Set에 있는 노드를 만나면 사이클이 시작된 것이므로 해당 노드를 반환한다. 3. 무사히 순회를 끝냈으면 사이클이 없는 것 이므로, null을 반환한다. 141번 사이클 감지하기 문제에서 활용한 투 포인터 테크닉을 활용하여 공간을 O(1)만큼만 사용할 수 있다. leetcode 141. Linked List Cycle 사이클 감지하기 leetcode 141. Linked List Cycle 문제풀이 문제: 주어진 연결리스트에 사이클이 있다면 true를 없다면 .. 더보기