Python 计算从根到叶的所有路径的所有节点

Python 计算从根到叶的所有路径的所有节点,python,tree-traversal,treepath,Python,Tree Traversal,Treepath,如果给定一棵树,其节点为整数:1~10,所有节点的分支因子为3,那么我如何编写一个函数来遍历该树,从根到叶对每条路径进行计数 对于这个例子,假设它需要返回: {1: 1, 2: 5} 我已尝试此帮助器函数: def tree_lengths(t): temp = [] for i in t.children: temp.append(1) temp += [e + 1 for e in tree_lengths(i)] return te

如果给定一棵树,其节点为整数:1~10,所有节点的分支因子为3,那么我如何编写一个函数来遍历该树,从根到叶对每条路径进行计数

对于这个例子,假设它需要返回:

{1: 1, 2: 5}
我已尝试此帮助器函数:

def tree_lengths(t):
    temp = []
    for i in t.children:
        temp.append(1)
        temp += [e + 1 for e in tree_lengths(i)]
    return temp
此代码有太多错误。首先,它会在返回列表中留下遍历中每个访问节点的印记,因此很难从该列表中找出我需要的值。另一方面,如果树很大,则在到达i in t子节点的线之前,它不会在路径中留下根节点和早期节点的印记。首先需要:从根叶复制所有路径;第二:返回每个路径计数的最终数目的独占列表


请帮忙!这太难了。

我不确定您到底想做什么,但您可能需要定义一个递归函数,该函数将一个节点作为树或子树的头,一个整数作为您迄今为止遍历的子节点数,还可能是迄今为止访问的每个节点的列表。如果节点没有子节点,那么您已经到达一个叶子,您可以打印出您需要的任何信息。否则,对于每个子节点,使用新参数+1再次调用此递归函数进行计数,子节点作为头节点,等等。

是否尝试计数路径数?或者你正在尝试列出所有的路径?事实上,很不清楚你想要实现什么。例如,您告诉1~10输出{1:1,2:5}是什么意思?关键点是什么,值是什么?