Skip to content

104-二叉树的最大深度

思路:递归

typescript
// Definition for a binary tree node.
class TreeNode {
  val: number
  left: TreeNode | null
  right: TreeNode | null
  constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
    this.val = val === undefined ? 0 : val
    this.left = left === undefined ? null : left
    this.right = right === undefined ? null : right
  }
}

function maxDepth(root: TreeNode | null): number {
  if (root === null) return 0
  // 树最大深度,等于左子树的深度和右子树的深度,最大的那个再 + 1
  return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1
}
// Definition for a binary tree node.
class TreeNode {
  val: number
  left: TreeNode | null
  right: TreeNode | null
  constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
    this.val = val === undefined ? 0 : val
    this.left = left === undefined ? null : left
    this.right = right === undefined ? null : right
  }
}

function maxDepth(root: TreeNode | null): number {
  if (root === null) return 0
  // 树最大深度,等于左子树的深度和右子树的深度,最大的那个再 + 1
  return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1
}