看了一个Up主总结的DFS的做题模板,搬过来记录一下
res = 0 #存储最终结果
start = 0 #初始化当前结果
#构造递归函数,通常参数为当前节点和当前结果
dfs(node,currentresult):
#终止条件返回判断
if node == None:
return
#更新当前结果currentresult
#若到达末尾叶子节点,进行最优结果的更新
if node.left == None and node.right == None:
#update res
#左右子树递归
dfs(node.left,currentresult)
dfs(node.right,currentresult)
#调用递归
dfs(root,start)
return res
根据这个模板,做了一道比较简单的求二叉树最大深度的题

代码如下:

需要注意的是我们保存最优解是使用列表,如果用int型变量,它的值无法带出函数
260

被折叠的 条评论
为什么被折叠?



