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
相关文章
- 07-20leetcode 算法 104 二叉树的最大深度(Python)-输出
- 07-20二叉树的层序遍历/后序遍历(leetcode104二叉树的最大深度、111二叉树的最小深度)(华为OD悄悄话、数组二叉树)
- 07-20【经典算法】LeetCode 111 二叉树的最小深度(Java/C/Python3/Go实现含注释说明,Easy)-相似题目
- 07-20LeetCode【104. 二叉树的最大深度】
- 07-20LeetCode-104 二叉树的最大深度
- 07-20104. 二叉树的最大深度
- 07-20104. 二叉树的最大深度
- 07-20104. 二叉树的最大深度(c++)
- 07-20104. 二叉树的最大深度
- 07-20104. 二叉树的最大深度