-- 二叉树 - 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
// }