😎풀이

  1. 깊이 우선 탐색
    1-1. 좌측 트리의 높이 계산
    1-2. 우측 트리의 높이 계산
    1-3. 좌측에서 우측까지 가는 거리가 가장 먼 거리가 됨
    1-4. 현재의 높이 반환
  2. 탐색된 최대 지름 반환
function diameterOfBinaryTree(root: TreeNode | null): number {
    let maxDiameter = 0
    function dfs(node: TreeNode | null) {
        if(!node) return 0
        const leftHeight = dfs(node.left)
        const rightHeight = dfs(node.right)
        maxDiameter = Math.max(maxDiameter, leftHeight + rightHeight)
        return Math.max(leftHeight, rightHeight) + 1
    }
    dfs(root)
    return maxDiameter
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글