최대 깊이를 탐색하는 dfs를 활용하면 쉬운 풀이가 가능하다.
깊이를 한 층씩 추가하며 현재까지의 깊이와 최대 깊이를 비교하는 방식으로 수행하였음
/**
* Definition for a binary tree node.
* class TreeNode {
* val: number
* left: TreeNode | null
* right: TreeNode | null
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
* }
*/
function maxDepth(root: TreeNode | null): number {
let result = 0;
// 최대 깊이 탐색 dfs
// depth: 현재 깊이
// node: 현재 노드
function findMaxDepth(depth: number, node: TreeNode | null) {
if(!node) return;
// 현재 깊이와 기록된 최대 깊이 비교
result = Math.max(result, depth);
findMaxDepth(depth + 1, node.left);
findMaxDepth(depth + 1, node.right);
}
// 검색 초기화
findMaxDepth(1, root);
return result;
};