91 - 二叉树中和为某一值的路径
        【摘要】     输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。路径定义为从树的根节点开始往下一直到叶节点所经过的节点形成一条路径 
class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None def findPath(root, n): if no...
    
    
    
    输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。路径定义为从树的根节点开始往下一直到叶节点所经过的节点形成一条路径
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))
  
 - 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 - 43
 - 44
 - 45
 - 46
 - 47
 - 48
 - 49
 - 50
 - 51
 - 52
 - 53
 - 54
 
[[1, 2, 11], [1, 3, 4, 6]]
  
 - 1
 
文章来源: ruochen.blog.csdn.net,作者:若尘,版权归原作者所有,如需转载,请联系作者。
原文链接:ruochen.blog.csdn.net/article/details/105218428
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)