二叉树的最大深度

力扣 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。