【发布时间】:2014-09-02 22:06:17
【问题描述】:
我正在尝试创建一个递归函数来查找树中的所有节点。我的函数,我们将其命名为 child(),它可以找到当前节点的所有子节点并返回它们的列表。
global nodes
nodes = []
def func():
if len(child(c))==0:
return []
else:
for ch in child(c):
nodes.append(ch)
return func(ch)
它似乎由于某种原因不起作用。
您是否知道出了什么问题,或者问题应该出在我的代码中的其他地方?
编辑:问题可能是
if len(child(c))==0:
return []
它应该检查另一个孩子而不是返回 []。但是不知道放什么。
【问题讨论】:
-
它以什么方式不起作用?
-
@PadraicCunningham 不,它没有,但如果这是正确的,问题可能出在我的代码中的其他地方。
-
@PadraicCunningham 可能发现了问题。 if len(child(c))==0: return 但它应该检查下一个邻居...
-
如果孩子c的len为0怎么会有邻居?
-
@PadraicCunningham 让我们看看这张图片en.wikipedia.org/wiki/Binary_tree#mediaviewer/… 例如节点 11 没有子节点,但它有一个在这种情况下不会被检查但应该检查的邻居。