프로그래밍-학습기록/코딩테스트
리트코드(LeetCode): 104. Maximum Depth of Binary Tree
leesche
2021. 5. 6. 13:01
이진 트리의 최대 깊이 구하기
- 문제 링크
문제 설명
- 이진 트리의 최대 깊이를 구하는 문제다.
해결 과정
- 처음엔 전역에 depth 변수를 선언하고 자식 노드가 있을 때마다 depth를 추가하는 재귀 함수를 작성했지만 잘 되지 않았다. 한 쪽 노드의 양쪽 자식 노드가 null일 때 다른 쪽을 판단하지 못하고 리턴되는 것이 문제였다.
- 그래서 끙끙 머리를 싸매다가 검색으로 해당 문제에 관한 글을 읽었다. 다루기 힘든 어려운 큰 문제를 다루기 쉬운 작은 문제로 나눠서 해결하는 재귀 방법을 소개하고 있었다. 바로 차용해봤다!
- 좀 더 끈기 있게 붙잡고 있었으면 풀 수 있었을까? 의문이 든 문제.
소스 코드
var maxDepth = function (root) {
if (!root) {
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
};