104.二叉树的最大深度
题目
LeetCode 简单
INFO
给定一个二叉树 root ,返回其最大深度。
二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。
示例:
输入:root = [3,9,20,null,null,15,7]
输出:3
题解
方法:深度优先
DFS
递归
O(n) O(height)
ts
function maxDepth(root: TreeNode | null): number {
let max = 0
const dfs = (node: TreeNode, depth: number) => {
console.log('node', node?.val, 'depth', depth)
if (!node) return
if (!node.left && !node.right) {
max = Math.max(max, depth)
}
if (node.left) dfs(node.left, depth + 1)
if (node.right) dfs(node.right, depth + 1)
}
dfs(root, 1)
return max
}
const tree = new Tree([3, 9, 20, 8, null, 15, 7])
console.log('🌰', maxDepth(tree.root))