前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >91 - 二叉树中和为某一值的路径

91 - 二叉树中和为某一值的路径

原创
作者头像
ruochen
修改2021-06-24 18:05:36
2330
修改2021-06-24 18:05:36
举报

输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。路径定义为从树的根节点开始往下一直到叶节点所经过的节点形成一条路径

代码语言:txt
复制
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
        
def findPath(root, n):
    if not root:
        return []
    result = []
    def findPath2(root, path, currentNum):
        currentNum += root.val
        path.append(root)
        # 判断root是否为叶子节点
        flag = root.left == None and root.right == None
        if currentNum == n and flag:
            onepath = []
            for node in path:
                onepath.append(node.val)
            result.append(onepath)
        if currentNum < n:
            if root.left:
                findPath2(root.left, path, currentNum)
            if root.right:
                findPath2(root.right, path, currentNum)
        path.pop()
    findPath2(root, [], 0)
    return result
    
root = TreeNode(1)
left = TreeNode(2)
right = TreeNode(3)
root.left = left
root.right = right

left1 = TreeNode(4)
right1 = TreeNode(5)
right.left = left1
right.right1 = right1

left2 = TreeNode(6)
left1.left = left2

left3 = TreeNode(11)
left.left = left3

'''

            1
        2       3
              4   5
            6
'''
print(findPath(root, 14))
代码语言:txt
复制
[[1, 2, 11], [1, 3, 4, 6]]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。路径定义为从树的根节点开始往下一直到叶节点所经过的节点形成一条路径
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档