Python 查找从节点到叶子的所有路径

Python 查找从节点到叶子的所有路径,python,network-programming,networkx,Python,Network Programming,Networkx,我有一个巨大的networkx图形对象(180万个节点)。我想用一个给定的节点输入这个对象,并检索从这个节点到一个叶(一个只连接一条边的节点)的所有路径。顺便说一下,这些路径的长度不是固定的 我发现这样做的唯一方法是: leaves = [node for node in G.nodes() if len(G.edges(node)) == 1] for leaf in leaves: paths = [x for x in nx.all_simple_path

我有一个巨大的networkx图形对象(180万个节点)。我想用一个给定的节点输入这个对象,并检索从这个节点到一个叶(一个只连接一条边的节点)的所有路径。顺便说一下,这些路径的长度不是固定的

我发现这样做的唯一方法是:

    leaves = [node for node in G.nodes() if len(G.edges(node)) == 1]
    for leaf in leaves:
        paths =  [x for x in nx.all_simple_paths(G, 1, leaf, cutoff=None)]
然而,在所有可能的叶子上循环并寻找给定节点和叶子之间的路径需要很长时间

有没有办法更快地得到结果?比如在本体论中,使用ElasticSearch进行信息检索


谢谢

将每个叶的边添加到新节点
辅助
。查找从给定节点到辅助
的所有路径。然后删除每个路径的最后一步,就有了从给定节点到叶子的所有路径。

简单地说就是brillant。