首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回BST python中所有路径的列表

返回BST python中所有路径的列表
EN

Stack Overflow用户
提问于 2021-01-30 01:59:29
回答 1查看 86关注 0票数 2

假设我有一个二叉树,从根到叶的路径是3-1-3,3-4-5,3-4-1……我该如何返回所有不同路径的列表呢?到目前为止,这就是我所知道的,但它所做的就是返回[3,1,3,4,1,5,3,1,3,4,1,5,3,1,3,4,1,5],这是树中所有节点的三个列表,而不是每个路径的单独列表。

代码语言:javascript
复制
self.res = []
def helper(root, temp):
   if not root:
      return
   temp.append(root.val)
   if not root.left and not root.right:
      self.res.append(temp)
      return
   helper(root.left, temp)
   helper(root.right, temp)
helper(root, [])
EN

回答 1

Stack Overflow用户

发布于 2021-01-30 02:36:29

您不能像这样附加到temp,您需要为左分支和右分支递归调用创建当前temp的不同副本。

下面是递归DFS方法的一个略微修改的版本,通过这样做,它应该可以按您的需要工作:

代码语言:javascript
复制
class BinaryTreePaths:
    def __init__(self):
        self.res = []
    
    def get_binary_tree_paths(self, root):
        if not root:
            return []
        self.helper(root, [])
        return self.res
    
    def helper(self, node, temp):
        if not node.left and not node.right:
            self.res.append(temp + [node.val])
        if node.left:
            self.helper(node.left, temp + [node.val])
        if node.right:
            self.helper(node.right, temp + [node.val])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65959524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档