Python:遍历所有树节点的递归函数
我正在尝试写一个递归函数,用来找到树中的所有节点。我的这个函数,我们叫它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 个回答
1
这是因为在循环里面有一个返回语句,这样的话,函数只会处理列表中的第一个元素。
这样写应该可以正常工作
global nodes
nodes = []
def func(c):
for ch in child(c):
nodes.append(ch)
func(ch)