看了一个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型变量,它的值无法带出函数