2015년 7월 1일 수요일

[LeetCode] SameTree



두개의 바이너리 트리가 주어졌을 때, 두개가 같은 트리인지 확인한다.
17번 라인을 p==q 만 확인했을 때에는 272ms 에, p==null && q==null 을 했을 때에는 288ms 가 걸린다. 연산이 늘어나서일까. 

아이디어는 간단하다. 만약에 p 와 q 의 val 가 같다면 재귀로 왼쪽 자식트리와 오른쪽 자식트리의 boolean 값을 비교한다. 그리고 p 와 q 가 null이 되는 순간이 올 것이다. (leaf node) 그럴 때 둘다 null 이라면 같은 것이니, return true.
true 가 되는 경우는 적으니, 일단 if 로 다 정리하고, 나머지는 else 로 return false 한다. 기본값도 return false
recursive 는 좀 생각하기 복잡할 때가 있는데 나도 한동안 이해가 엄청 안되서 recursive 를 거의 쓰지 않았었다. 근데 계속 하다보니 조금씩 익숙해진다.

댓글 없음:

댓글 쓰기