所以我陷入了这样的困境(简化版本)
class Node:
def __init__(self):
self.left= None
self.cost = 0
def change(self):
if self.left is not None:
self.left.cost=self.cost+1
self.left.change
data=[]
for i in range(10):
data.append(Node())
if i>0:
data[i].left = data[i-1]
data[8].change()
print(data[2].cost) #0
我要data[2].cost
已更改,但它会回滚。我可以让它在不跳过递归的情况下工作吗? (在完整版本中,我实际上保留了一个具有四个指针的二维节点数组,因此迭代很糟糕。)
最佳答案
当您调用 change
方法时,您忘记了 ()
。
def change(self):
if self.left is not None:
self.left.cost=self.cost+1
self.left.change()
输出:
6
关于Python:递归方法回滚变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53303539/