Я пытаюсь обновить переменную 1 или 2 из функции calc, а затем распечатать ее в функции rob. Но всякий раз, когда я делаю это, он возвращается к нулю, и это вызывает проблемы
Использовал ключевое слово global как упомянуто Использование глобальных переменных в функции и не может получить доступ к глобальной переменной изнутри функции в python , но это, похоже, не работает
class Solution(object):
one=0
two= 0
def calc(self,root,flag):
global one
global two
if root == None:
return
if flag:
self.one+=root.val
Solution().calc(root.left,False)
Solution().calc(root.right, False)
else :
self.two+=root.val
Solution().calc(root.left, True)
Solution().calc(root.right, True)
print (str(root.val)+" " + str(self.one) + " " + str(self.two))
def rob(self, root):
self.calc(root,True)
global one
global two
print self.one
print self.two
return max(self.one,self.two)
Это в основном всегда возвращать один и два обратно в ноль