通过创建 Node 对象,我在 python 中创建了一个通用树。每个节点可以有 0、1 或 2 棵树。
我正在尝试创建一种方法来打印树中所有节点的列表。该列表不必按顺序排列。这是我的简单尝试:
def allChildren(self, l = list()):
l.append(self)
for child in self.children:
l = child.allChildren(l)
return l
我第一次运行此方法时,它可以正常工作。但是,由于某种原因,它正在存储以前的运行。我第二次运行该方法时,它会将所有节点打印两次。即使我创建了 2 个单独的树,它仍然会记住以前的运行。例如:我创建了 2 棵树,a 和 b。如果我运行 a.allChildren() 我会收到正确的结果。然后我运行 b.allChildren() 并接收所有 a 的节点和所有 b 的节点。