【发布时间】:2018-10-31 12:32:31
【问题描述】:
0
/ \
1 2
/ \ /|\
3 4 5 6 7
我正在尝试使用递归函数从对象返回没有子节点 (3,4,5,6,7) 的节点。
它使用一个全局变量和这个函数来工作:
def find(self, nodes):
if not hasattr(self, 'children'):
nodes.append(self)
else:
for i in self.children:
i.find(nodes)
nodes = []
node.find(nodes) # can be any node (0,1,2,3,4, etc.)
print(nodes)
但我想在我的函数中使用 return。我尝试过这样的事情:
def find2(self):
if not hasattr(self, 'children'):
return self
else:
for i in self.children:
return i.find2()
nodes = root.find2()
print(nodes)
但我只得到 1 个节点。我还尝试在这篇文章中传递一个数组:PYTHON Return a list from a recursive function。但是我没有得到我想要的结果,因为树结构(我猜)......
我被困住了,你能帮帮我吗?如何“将递归函数每次迭代的结果返回给变量”?谢谢
【问题讨论】:
标签: python recursion tree return