如何找到从根到节点的路径(Python 3.6)

我正在尝试查找从ROOT到某个值的NODE的树的所有路径。

我尝试的第一个解决方案是使用递归,该递归在节点的value == value时停止:

def list_paths_to_value(t, value):
    list_ = []

    for b in t.branches:
        list_ += [[t.label] + path for path in list_paths_to_value(b, value)]

    if t.label == value:
        return [[t.label]]
    return list_

one_branch_two_depth = Tree(1, [Tree(2, [Tree(2)])])

list_paths_to_value(one_branch_two_depth, 2)

Output:
[[1,2]]

输出应为[[1,2,2,[1,2,2]],但我的输出无法返回[1,2,2]路径。

我的另一种解决方案是强制递归函数仅在树的叶子处停止:

def list_paths_to_value(t, value):
    list_ = []

    for b in t.branches:
        list_ += [[t.label] + path for path in list_paths_to_value(b, value)]

    if t.label == value and t.is_leaf():
        return [[t.label]]

    return list_

one_branch_two_depth = Tree(1, [Tree(2, [Tree(2)])])

list_paths_to_value(one_branch_two_depth, 2)

Output:
[[1,2,2]]

另一方面,它没有返回[1,2]值。

关于如何返回预期输出的指南将受到极大的赞赏。