【发布时间】:2011-10-31 08:59:52
【问题描述】:
我想生成从树中每个叶子到根的所有路径。我想用生成器来做到这一点,以节省内存(树可能很大)。这是我的代码:
def paths(self, acc=[]):
if self.is_leaf():
yield [self.node]+acc
for child in self.children:
child.paths([self.node]+acc)
但它不起作用。为什么?在根调用,它从上到下遍历树,收集“acc”中的节点。 "acc" 应该在每一片叶子中返回...
如果 self.children 为空,is_leaf() 为真。
【问题讨论】: