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

举报
ruochen 发表于 2021/03/28 01:04:28 2021/03/28
【摘要】 输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。路径定义为从树的根节点开始往下一直到叶节点所经过的节点形成一条路径 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

92 - 青蛙跳台阶

文章来源: ruochen.blog.csdn.net,作者:若尘,版权归原作者所有,如需转载,请联系作者。

原文链接:ruochen.blog.csdn.net/article/details/105218428

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。