二叉树的最大深度
力扣 104 题
// 定义一个名为 maxDepth 的函数,它接受一个二叉树的根节点作为参数
var maxDepth = function (root) {
// 如果根节点为空,返回 0 表示深度为 0
if (root === null) {
return 0;
}
// 递归地计算左子树的最大深度
const leftMax = maxDepth(root.left);
// 递归地计算右子树的最大深度
const rightMax = maxDepth(root.right);
// 根据左右子树的最大深度推出原二叉树的最大深度
// 该节点的深度是其左右子树深度的最大值再加上 1
// 1 表示该节点本身的深度也要计入
return 1 + Math.max(leftMax, rightMax);
};
本函数主要使用递归算法来计算二叉树的最大深度。 函数首先检查当前节点是否为空。如果为空,则返回表示深度为 0; 否则,分别递归计算左右子树的最大深度,并求出二者中的最大值,然后将其加 1 返回。 递归计算终止时,当遍历到叶子节点时,返回深度为 1,即左右子树的最大深度为 0。