Я пытаюсь найти максимальную глубину двоичного дерева, используя подход сверху-вниз и рекурсию. Реализация узла дерева приведена ниже.
class Node:
def __init__(self,key):
self.left=None
self.right=None
self.val=key
def __str__(self):
return str(self.val)
root = Node(3)
root.left = Node(9)
root.right = Node(20)
root.right.left = Node(15)
root.right.right = Node(7)
Это код, который я использую:
def tdmaxdepth(TreeNode):
tree_depth=0
def helper(node,depth):
# print(tree_depth,depth)
if not node :
return
if not node.left and not node.right:
tree_depth=max(tree_depth,depth)
else:
helper(node.left,depth+1)
helper(node.right,depth+1)
helper(root,0)
return tree_depth
print(tdmaxdepth(root))
Но я получаю «UnboundLocalError: локальная переменная tree_depth, на которую ссылается перед назначением» . Я предполагаю, что это из-за проблемы с глобальной и локальной областью видимости. Но я не знаю, как ее решить, и я не хочу использовать ключевое слово global. Может ли кто-нибудь предложить решение, пожалуйста. Я могу использовать переменную класса. как это сделать?