需求
给定一个二叉树 root ,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:3
示例 2:
输入:root = [1,null,2]
输出:2
输出
class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef maxDepth(root):""":type root: TreeNode:rtype: int"""# 如果树为空,深度为0if not root:return 0# 递归计算左子树的最大深度left_depth = maxDepth(root.left)# 递归计算右子树的最大深度right_depth = maxDepth(root.right)# 当前树的最大深度是左右子树最大深度的较大值加1(根节点)return max(left_depth, right_depth) + 1# 示例 1
root1 = TreeNode(3)
root1.left = TreeNode(9)
root1.right = TreeNode(20)
root1.right.left = TreeNode(15)
# root1.right.right = TreeNode(7)# 示例 2
root2 = TreeNode(1)
root2.right = TreeNode(2)# 调用函数并打印结果
print(maxDepth(root1)) # 应输出 3
print(maxDepth(root2)) # 应输出 2