说明:最烦的就是看别人的博客,题解里直接上代码,一行分析都没有。只是这个题。。。

  1. class BTNode():
  2. def __init__(self, val = -1):
  3. self.val = val
  4. self.left = None
  5. self.right = None
  6.  
  7. class BTree():
  8. def __init__(self):
  9. self.root = None
  10. '''
  11. ex
  12. 1
  13. / \
  14. 2 3
  15. / /
  16. 4 5
  17.  
  18. treeArray = [1,2,3,4,'#',5]
  19. '''
  20. def createTree(self, treeArray):
  21. self._createTree(treeArray)
  22.  
  23. def _createTree(self,treeArray, i = 0):
  24. if i > len(treeArray) :
  25. return None
  26. if treeArray[i] == '#':
  27. return None
  28.  
  29. root = BTNode(int(treeArray[i]))
  30. if self.root == None:
  31. self.root = root
  32.  
  33. #create left branch
  34. l = 2*i + 1
  35. if l < len(treeArray):
  36. root.left = self._createTree(treeArray, l)
  37.  
  38. #create right branch
  39. r = 2*i + 2
  40. if r < len(treeArray):
  41. root.right = self._createTree(treeArray,r)
  42. return root
  43.  
  44. def preorder(self, root):
  45. if root == None:
  46. return
  47. print root.val
  48. self.preorder(root.left)
  49. self.preorder(root.right)
  50.  
  51. def inorder(self, root):
  52. if root == None:
  53. return
  54. self.inorder(root.left)
  55. print root.val
  56. self.inorder(root.right)
  57.  
  58. def postorder(self, root):
  59. if root == None:
  60. return
  61. self.postorder(root.left)
  62. self.postorder(root.right)
  63. print root.val
  1. def Print(path):
  2. for i in range(len(path)):
  3. print path[i]
  4. print "--------------------"
  5.  
  6. def pathSum(broot, remainder, path):
  7. if broot == None:
  8. return
  9. if remainder < broot.val:
  10. return
  11. path.append(broot.val)
  12. remainder -= broot.val
  13. if remainder == 0:
  14. if broot.left == None and broot.right == None:
  15. Print(path)
  16. else:
  17. return
  18. pathSum(broot.left, remainder, path)
  19. pathSum(broot.right, remainder,path)
  20. path = path.pop()
  21.  
  22. if __name__ == '__main__':
  23. array = [10,5,12,4,7]
  24. bt = BTree()
  25. bt.createTree(array)
  26. #bt.preorder(bt.root)
  27. path = []
  28. remainder = 22
  29. pathSum(bt.root, remainder, path)

【剑指offer】Q25:二叉树中和为某一值的路径的更多相关文章

  1. 剑指Offer:二叉树中和为某一值的路径【34】

    剑指Offer:二叉树中和为某一值的路径[34] 题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. ...

  2. 剑指 Offer 34. 二叉树中和为某一值的路径 + 记录所有路径

    剑指 Offer 34. 二叉树中和为某一值的路径 Offer_34 题目详情 题解分析 本题是二叉树相关的题目,但是又和路径记录相关. 在记录路径时,可以使用一个栈来存储一条符合的路径,在回溯时将进 ...

  3. 剑指 Offer 34. 二叉树中和为某一值的路径

    剑指 Offer 34. 二叉树中和为某一值的路径 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下 ...

  4. 【剑指Offer】二叉树中和为某一值的路径 解题报告(Python)

    [剑指Offer]二叉树中和为某一值的路径 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervi ...

  5. 【剑指offer】二叉树中和为某一值的路径

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/26141815 题目描写叙述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数 ...

  6. 【Java】 剑指offer(34) 二叉树中和为某一值的路径

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有 ...

  7. Go语言实现:【剑指offer】二叉树中和为某一值的路径

    该题目来源于牛客网<剑指offer>专题. 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路 ...

  8. 《剑指offer》二叉树中和为某一值的路径

    本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:

  9. 【剑指offer】二叉树中和为某一值的路径,C++实现

    原创文章,转载请注明出处! 博客文章索引地址 1.题目 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径由结点和有向边组成,从根结点到叶节点. // 二叉树结点的定义 st ...

  10. 剑指OFFER之二叉树中和为某一值的路径(九度OJ1368)

    题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 输入: 每个测试案例包括n+1行: 第一行为2 ...

随机推荐

  1. 智课雅思词汇---十一、spect是什么意思

    智课雅思词汇---十一.spect是什么意思 一.总结 一句话总结:词根:spect, speci, spec(spic, spi, spy) = to look, to see 看 1.port是什 ...

  2. 陈-朱-兴- js写法【案例】:

    ajax请求: 一.从服务器端请求数据: var url = '';url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='+ ...

  3. 【DNN引用包】

    <%@ Register TagPrefix="dnn" TagName="address" Src="~/controls/address.a ...

  4. Android项目实战(五十七):Glide 高斯模糊效果

    核心需要高斯模糊的库 compile 'jp.wasabeef:glide-transformations:2.0.1' 针对于3.7的版本 使用方法为: //加载背景, Glide.with(Mus ...

  5. Objective-C 小记(10)__weak

    本文使用的 runtime 版本为 objc4-706. __weak 修饰的指针最重要的特性是其指向的对象销毁后,会自动置为 nil,这个特性的实现完全是依靠运行时的.实现思路是非常简单的,对于下面 ...

  6. NodeJS学习笔记 (32)安全加密-tls

    https://github.com/chyingp/nodejs-learning-guide

  7. 旧机器安装ArchLinux的各种问题

    昨天突然想到家里还有一台很早之前不用的计算机 于是打算安装一个linux,开学再拿到宿舍用来写代码,怎么说台式机显示屏也比笔记本的大 机器安装问题 屏幕机箱擦干净,该连的东西都连上,然后插电源,本以为 ...

  8. Fans同学已死,终年24岁

    亲爱的同学们,朋友们,QQ好友. 告诉大家一个悲剧:Fans同学已死,终年24岁. 马甲变迁 正式告诉大家一个消息,我的ID"Fans同学"正在退出"历史舞台" ...

  9. ECNUOJ 2855 贪吃蛇

    贪吃蛇 Time Limit:1000MS Memory Limit:65536KBTotal Submit:480 Accepted:109 Description  相信很多人都玩过这个游戏,当然 ...

  10. 钩子(hooks)—webhook-使用钩子自动触发部署

    钩子(hooks)-webhook http://fighter.blog.51cto.com/1318618/1670667 https://www.lovelucy.info/auto-deplo ...