二叉树的最大深度(LeetCode)

题目

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

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

解题

python 复制代码
# 定义二叉树节点的类
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right


# 计算二叉树最大深度的函数
def maxDepth(root: TreeNode) -> 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


# 创建二叉树
root = TreeNode(3)
root.left = TreeNode(9)
root.right = TreeNode(20, TreeNode(15), TreeNode(7))

# 计算最大深度
depth = maxDepth(root)
print(depth)  # 输出 3
相关推荐
m5655bj5 小时前
通过 Python 删除 Excel 中的空白行列
python·ui·excel
程序员酥皮蛋5 小时前
hot 100 第二十二题 22.相交链表
数据结构·算法·leetcode·链表
全栈前端老曹5 小时前
【Redis】Redis 客户端连接与编程实践——Python/Java/Node.js 连接 Redis、实现计数器、缓存接口
前端·数据库·redis·python·缓存·全栈
一只小小的芙厨5 小时前
寒假集训·子集枚举2
c++·笔记·算法·动态规划
Y.O.U..5 小时前
力扣刷题-61.旋转链表
算法·leetcode·链表
这波不该贪内存的5 小时前
【无标题】
算法·排序算法
橙露5 小时前
排序算法可视化:用 Java 实现冒泡、快排与归并排序的对比分析
java·python·排序算法
靠沿5 小时前
【优选算法】专题二——滑动窗口
java·数据结构·算法
SoulruiA5 小时前
LeetCode-394. 字符串解码 递归思路
算法·leetcode·职场和发展
.小墨迹5 小时前
局部规划中的TEB,DWA,EGOplanner等算法在自动驾驶中应用?
开发语言·c++·人工智能·学习·算法·机器学习·自动驾驶