104. 二叉树的最大深度
js
;(function () {
/**
* 104. 二叉树的最大深度
* 给定一个二叉树,找出其最大深度。
* 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
* 说明: 叶子节点是指没有子节点的节点。
*
*
*
*
*/
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 {
// 方法一:递归
let max = 0
let index = 0
function preorder(root: TreeNode | null, index: number) {
if (!root) return
let k: number = ++index
max = Math.max(max, k)
preorder(root.left, k)
preorder(root.right, k)
}
preorder(root, index)
return max
// 方法二:
}
})()