力扣——【104. 二叉树的最大深度】

#思路

1、明确此题和数的模版虽都使用了递归思想,但是代码结构大不相同

① 二叉树的树结点定义中,属性不同

②不同于数模版中为结点添加子节点,二叉树中选择一起定义,在构建树的过程中,

使用嵌套完成,思想大差不差

2、在撰写递归函数的过程中,需要首先为函数添加返回值,然后调用函数,最后返回答案,

因为递归调用是在一次次深入过程中,得到答案,所以第二个return需要引入常数,做出改变

#代码

python 复制代码
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

from typing import Optional
class Solution:
    def maxDepth(self, root: Optional[TreeNode]) -> int:
        if root==None:
            return 0
        rd=self.maxDepth(root.right)
        ld=self.maxDepth(root.left)
        return max(rd,ld)+1
node_9 = TreeNode(9)
node_15 = TreeNode(15)
node_7 = TreeNode(7)
node_20 = TreeNode(20, node_15, node_7)
root = TreeNode(3, node_9, node_20)

# 创建 Solution 类的实例
solution = Solution()

# 调用 maxDepth 方法计算树的最大深度
depth = solution.maxDepth(root)
print(f"二叉树的最大深度是: {depth}")
相关推荐
smchaopiao10 分钟前
Python中字典与列表合并的问题与解决方法
开发语言·python
9359612 分钟前
练习题53-60
算法·深度优先
卡尔特斯20 分钟前
Ultralytics YOLO26 自动对指定标注文件夹区分标注素材脚本与训练脚本
python·openai
霖大侠26 分钟前
Wavelet Meets Adam: Compressing Gradients forMemory-Efficient Training
人工智能·深度学习·算法·机器学习·transformer
2501_9216494929 分钟前
期货 Tick 级数据与基金净值历史数据 API 接口详解
开发语言·后端·python·websocket·金融·区块链
njidf33 分钟前
实战:用Python开发一个简单的区块链
jvm·数据库·python
Rick199340 分钟前
慢SQL优化
数据库·python·sql
AI成长日志1 小时前
【笔面试算法学习专栏】二分查找专题:力扣hot100经典题目深度解析
学习·算法·面试
lcreek1 小时前
流量优化之道:Ford-Fulkerson 最大流算法
算法·
gc_22991 小时前
学习python使用Ultralytics的YOLO26进行分割的基本用法
python·分割·ultralytics·yolo26