ฉันกำลังพยายามอัปเดตตัวแปรหนึ่งหรือสองตัวจากภายในฟังก์ชัน calc แล้วพิมพ์ลงในฟังก์ชัน rob แต่เมื่อใดก็ตามที่ฉันทำ มันจะกลับมาเป็นศูนย์และนั่นทำให้เกิดปัญหา
ใช้คำหลักสากลตามที่กล่าวไว้ การใช้ตัวแปรส่วนกลางในฟังก์ชัน และ ไม่สามารถเข้าถึงตัวแปรส่วนกลางจากภายในฟังก์ชันใน 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)
โดยพื้นฐานแล้วมันจะคืนค่าหนึ่งและสองกลับไปเป็นศูนย์เสมอ