需求
给定一个二叉树 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 = val
self.left = left
self.right = right
def maxDepth(root):
"""
:type root: TreeNode
:rtype: int
"""
# 如果树为空,深度为0
if 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