😎풀이

최대 깊이를 탐색하는 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;
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글