首页 > 解决方案 > 在树中查找元素的完整路径

问题描述

我想在树中找到元素的完整路径。元素可以位于少数几个地方。

我当前的代码:

levels = [
    {"L3A": ["L4A"]},
    {"L3B": ["L4B"]},
    {"L3C": ["L4C"]},
    {"L1": ["L2", "L4A"]},
    {"L2": ["L3A", "L3B", "L3C"]}
]

def get_level(name):
    tree = []
    recursive(name, tree)
    return tree

def recursive(name, tree):
    for level in levels:
        for k, v in level.items():
            if name in v:
                tree.append(k)
                recursive(k, tree)

levl = get_level("L4A")
print(levl)

结果

是: ['L3A', 'L2', 'L1', 'L1']

想: [['L3A', 'L2', 'L1'], ['L1']]

最终想要:

L4A in L1 > L2 > L3A

L4A in L1 

你能给我一些建议如何改变它吗?

标签: pythonrecursiontree

解决方案


反转关联图,然后应用标准图搜索,例如。DFS。


推荐阅读