我有一棵树,它不是二叉树,所以我想比较所有的节点并使用递归返回最大的一个节点。我有一个如何跟踪它的问题,因为我不能放置一个全局变量,因为它必须是本地的...我猜...但是,如果递归去重置局部变量。在递归中分配局部变量
def tree_max(node):
max=1
if node.left == None and node.right == None:
if node.value>max:
max=node.value
return max
elif node.left == None and node.right != None:
return tree_max(node)
elif node.left != None and node.right == None:
return tree_max(node.left)
else:
return tree_max(node.left)
有什么建议吗?
首先,修复压痕。 – abarnert
接下来,局部变量的全部要点在于它对当前函数调用是本地的。你到底想要什么?如果您想将值传回并备份,则需要将其最大化为一个参数(默认值为1)。如果你想将它绑定到一个闭包,你需要一个内部函数(使用'nonlocal',一个可变的默认参数等)。 – abarnert
我想要一个变量来跟踪我的最高值,那它 –