#思路
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}")