我有一棵樹,它不是二叉樹,所以我想比較所有的節點並使用遞歸返回最大的一個節點。我有一個如何跟蹤它的問題,因爲我不能放置一個全局變量,因爲它必須是本地的...我猜...但是,如果遞歸去重置局部變量。在遞歸中分配局部變量
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
我想要一個變量來跟蹤我的最高值,那它 –