力扣——【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}")
相关推荐
这里有鱼汤9 分钟前
熟练掌握MACD这8种形态,让你少走三年弯路(附Python量化代码)| 建议收藏
后端·python
404.Not Found17 分钟前
Day46 Python打卡训练营
开发语言·python
love530love19 分钟前
【PyCharm必会基础】正确移除解释器及虚拟环境(以 Poetry 为例 )
开发语言·ide·windows·笔记·python·pycharm
凌辰揽月20 分钟前
Web后端基础(基础知识)
java·开发语言·前端·数据库·学习·算法
lifallen26 分钟前
深入浅出 Arrays.sort(DualPivotQuicksort):如何结合快排、归并、堆排序和插入排序
java·开发语言·数据结构·算法·排序算法
运维开发王义杰26 分钟前
Python: 告别 ModuleNotFoundError, 解决 pipx 环境下 sshuttle 缺少 pydivert 依赖的终极指南
开发语言·python
jingfeng51427 分钟前
数据结构排序
数据结构·算法·排序算法
能工智人小辰1 小时前
Codeforces Round 509 (Div. 2) C. Coffee Break
c语言·c++·算法
DanCheng-studio1 小时前
毕设 基于机器视觉的驾驶疲劳检测系统(源码+论文)
python·毕业设计·毕设
kingmax542120081 小时前
CCF GESP202503 Grade4-B4263 [GESP202503 四级] 荒地开垦
数据结构·算法