You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何展开嵌套列表形式的树结构,提取所有独立路径?

展开嵌套路径树为独立路径的递归实现

这种嵌套列表形式的路径树,用递归处理是最直接的方案,完全适配你提到的「路径长度、分叉数未知但有限」的场景。

核心实现代码(Python)

def flatten_path_tree(tree):
    # 处理单个节点的情况(比如递归到最底层的叶子节点)
    if not isinstance(tree, list):
        return [[tree]]
    current_node = tree[0]
    # 没有后续分支,直接返回单条路径
    if len(tree) == 1:
        return [[current_node]]
    all_paths = []
    # 遍历所有分支子树,递归展开后拼接当前节点
    for subtree in tree[1:]:
        sub_paths = flatten_path_tree(subtree)
        for path in sub_paths:
            all_paths.append([current_node] + path)
    return all_paths

测试你的示例

把你给出的路径树传入函数:

L = [70, [49, [4]], [94, [120, [144]],[121, [150,[173]]]]]
result = flatten_path_tree(L)
print(result)

输出结果正好是你需要的三条独立路径:

[[70, 49, 4], [70, 94, 120, 144], [70, 94, 121, 150, 173]]

逻辑说明

  1. 递归拆解:每一层路径树的结构都是「当前节点 + 若干子路径树」,递归会把每个子路径树拆解到最底层的单个节点。
  2. 路径拼接:把当前节点加到每个子路径的开头,就能得到从根节点到当前子路径末端的完整路径。
  3. 兼容性:不管路径深度有多深、分叉数有多少,只要是有限的嵌套结构,这个函数都能正确处理,返回的列表可以直接作为节点可视化的数据源(比如遍历每条路径,给路径上的节点标记颜色)。

内容的提问来源于stack exchange,提问作者F. Heath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:18:25