二叉树的最大深度

🎯 问题描述(来源于LeetCode)

描述
给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
说明

  • 树中节点的数量在 [0, 104] 区间内。

  • -100 <= Node.val <= 100
    示例

  • 示例 1:

1
2
输入:root = [3,9,20,null,null,15,7]
输出:3
  • 示例 2:
1
2
输入:root = [1,null,2]
输出:2

💻 解题思路

思路1:递归

思路1:代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def maxDepth(self, root: Optional[TreeNode]) -> int:
res=[]
def dfs(node,level):
if not node:
return
if level==len(res):
res.append([])
res[level].append(node.val)
dfs(node.left,level+1)
dfs(node.right,level+1)
dfs(root,0)
return len(res)

思路1:📊 性能分析

提交结果
  • 运行时间:0ms击败100.00%
  • 内存消耗:20.34MB击败5.24%
复杂度验证
  • 时间复杂度:O(N)O(N)
  • 空间复杂度:O(N)O(N)