首页 > 解决方案 > 如何将树的所有dfs路径存储在列表中?

问题描述

def traverse(node, path =[]):
    path.append(node.val)
    if len(node.children)==0:
       print(path)
       path.pop()
   else:
       for child in node.children:
           traverse(child)    
       path.pop()

上面的代码打印了树的深度优先搜索遍历,例如

[3、2、1、4]

[3, 2, 5]

但它只是打印这些值,我想将它存储在一个列表中并希望将列表返回为

[[3,2,1,4],[3,2,5]]。

我应该对代码做哪些修改来实现这一点?

标签: python-3.xtreedepth-first-searchtree-traversal

解决方案


只需一个简单的修改就可以帮助您!

def traverse(node, result=[], path =[]):
    path.append(node.val)
    if len(node.children)==0:
        print(path)
        result.append(path.copy())
        path.pop()
    else:
        for child in node.children:
            traverse(child)
        path.pop()
    return result

将路径复制到名为“结果”的列表中并返回。


推荐阅读