我试图从calc函数内部更新变量1或2,然后在rob函数中打印它。但每当我这么做的时候,它就会回复到零,这会引起问题
使用了前面提到的global关键字Using global variables in a function和can't access global variable from inside a function in 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)
基本上是 总是把一和二归零
如果没有
root
的定义和给出错误答案的代码调用示例,就很难回答您的问题。也就是说,我认为问题是您将root.val
变为Solution
属性,而不是增加globals:相关问题 更多 >
编程相关推荐