Skip to content

Latest commit

 

History

History
50 lines (38 loc) · 1.29 KB

39_二叉树_104. 二叉树的最大深度.md

File metadata and controls

50 lines (38 loc) · 1.29 KB

-- 二叉树 - easy 点击直达力扣

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例:

给定二叉树 [3,9,20,null,null,15,7],

 3
/ \
9  20
/  \
15   7

返回它的最大深度 3 。

说明

前置知识:

  • 二叉树的深度:指任意节点到根节点的路径,通常使用前序遍历(从根节点向下找);

  • 二叉树的高度:指任意节点到其叶子节点的路径,通常使用后序遍历(从叶子节点向上统计)。

// 后序遍历
function maxDepth(root: TreeNode | null): number {
    return getHeight(root)
};

function getHeight(root: TreeNode | null): number {
    if (root === null) {
        return 0
    }
    let leftHeight = getHeight(root.left)  // 左
    let rightHeight = getHeight(root.right)  // 右
    return Math.max(leftHeight, rightHeight) + 1  // 中
}

// 精简代码
// function getHeight(root: TreeNode | null): number {
//     if (root === null) { return 0 }
//     return Math.max(getHeight(root.left), getHeight(root.right)) + 1  
// }