본문 바로가기

🐺 매일 알고리즘

서로 다른 두 연결리스트 교차점찾기 2

leetcode 160. Intersection of Two Linked Lists 문제풀이.

문제: 서로 다른 두 연결리스트가 주어졌을 때, 첫 교차점을 찾아라.

A와 B 리스트가 주어졌을 때 c1노드를 반환

교차되는 노드가 없다면 null을 반환

 

두 연결리스트의 노드 수 차이

 

1. 두 연결리스트의 길이를 잰다.

2. 길이차이가 있다면 그만큼 둘 중 더 긴 리스트의 포인터를 스킵한다.

3. 길이가 같은 두 연결리스트의 포인터를 같은 속도로 이동시키며 비교했을때, 서로 같은 노드가 첫 교차점이다.

 

  • Time Complexity: O(A+B)
  • Space Complexity: O(1)

이 방법으로 통과를 했으나 첫 교차점를 지난 후 노드가 서로 다를 경우를 포함하지 못한다.