Python:用于浏览所有树节点的递归函数

时间:2014-07-12 10:26:00

标签: python recursion tree

我正在尝试创建一个查找树中所有节点的递归函数。我的函数,我们将它命名为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 [] 它应该检查另一个孩子而不是返回[]。但不知道该放什么。

1 个答案:

答案 0 :(得分:0)

由于for内部的return语句,该函数只传递给列表中的第一个子节点。

这应该有效

global nodes
nodes = []

def func(c):
    for ch in child(c):
        nodes.append(ch)
        func(ch)