【剑指offer】Q25:二叉树中和为某一值的路径
说明:最烦的就是看别人的博客,题解里直接上代码,一行分析都没有。只是这个题。。。
class BTNode():
def __init__(self, val = -1):
self.val = val
self.left = None
self.right = None class BTree():
def __init__(self):
self.root = None
'''
ex
1
/ \
2 3
/ /
4 5 treeArray = [1,2,3,4,'#',5]
'''
def createTree(self, treeArray):
self._createTree(treeArray) def _createTree(self,treeArray, i = 0):
if i > len(treeArray) :
return None
if treeArray[i] == '#':
return None root = BTNode(int(treeArray[i]))
if self.root == None:
self.root = root #create left branch
l = 2*i + 1
if l < len(treeArray):
root.left = self._createTree(treeArray, l) #create right branch
r = 2*i + 2
if r < len(treeArray):
root.right = self._createTree(treeArray,r)
return root def preorder(self, root):
if root == None:
return
print root.val
self.preorder(root.left)
self.preorder(root.right) def inorder(self, root):
if root == None:
return
self.inorder(root.left)
print root.val
self.inorder(root.right) def postorder(self, root):
if root == None:
return
self.postorder(root.left)
self.postorder(root.right)
print root.val
def Print(path):
for i in range(len(path)):
print path[i]
print "--------------------" def pathSum(broot, remainder, path):
if broot == None:
return
if remainder < broot.val:
return
path.append(broot.val)
remainder -= broot.val
if remainder == 0:
if broot.left == None and broot.right == None:
Print(path)
else:
return
pathSum(broot.left, remainder, path)
pathSum(broot.right, remainder,path)
path = path.pop() if __name__ == '__main__':
array = [10,5,12,4,7]
bt = BTree()
bt.createTree(array)
#bt.preorder(bt.root)
path = []
remainder = 22
pathSum(bt.root, remainder, path)
【剑指offer】Q25:二叉树中和为某一值的路径的更多相关文章
- 剑指Offer:二叉树中和为某一值的路径【34】
剑指Offer:二叉树中和为某一值的路径[34] 题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. ...
- 剑指 Offer 34. 二叉树中和为某一值的路径 + 记录所有路径
剑指 Offer 34. 二叉树中和为某一值的路径 Offer_34 题目详情 题解分析 本题是二叉树相关的题目,但是又和路径记录相关. 在记录路径时,可以使用一个栈来存储一条符合的路径,在回溯时将进 ...
- 剑指 Offer 34. 二叉树中和为某一值的路径
剑指 Offer 34. 二叉树中和为某一值的路径 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下 ...
- 【剑指Offer】二叉树中和为某一值的路径 解题报告(Python)
[剑指Offer]二叉树中和为某一值的路径 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervi ...
- 【剑指offer】二叉树中和为某一值的路径
转载请注明出处:http://blog.csdn.net/ns_code/article/details/26141815 题目描写叙述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数 ...
- 【Java】 剑指offer(34) 二叉树中和为某一值的路径
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有 ...
- Go语言实现:【剑指offer】二叉树中和为某一值的路径
该题目来源于牛客网<剑指offer>专题. 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路 ...
- 《剑指offer》二叉树中和为某一值的路径
本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:
- 【剑指offer】二叉树中和为某一值的路径,C++实现
原创文章,转载请注明出处! 博客文章索引地址 1.题目 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径由结点和有向边组成,从根结点到叶节点. // 二叉树结点的定义 st ...
- 剑指OFFER之二叉树中和为某一值的路径(九度OJ1368)
题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 输入: 每个测试案例包括n+1行: 第一行为2 ...
随机推荐
- spark 卡在spark context,运行出现spark Exception encountered while connecting to the server : javax.security.sasl.SaslException
原因: 使用root用户运行spark代码 解决方法:使用非管理员账户运行spark即可 [userone@localhost bin]$ ./add-user.sh What type of use ...
- 数位$dp$
数位\(dp\)搞了一上午才搞懂.靠这种傻\(X\)的东西竟然花了我一上午的时间. 数位\(dp\) 概念 数位\(dp\)就是强制你分类一些数,例如给你一段区间,然后让你求出不包含\(2\)的数的个 ...
- tomcat:Could not publish to the server. java.lang.IndexOutOfBoundsException
1.将工程加入到tomcat,报上述错误 2. run--maven build 报jar包错误: invalid LOC header (bad signature) 3.根据提示找到上述jar包, ...
- sql 知识点
1 聚集索引和非聚集索引的区别 聚集索引是指 表中存储的数据按照索引的顺序来存储,数据检索效率高,但是对数据更新影响较大:非聚集索引是数据存储在一个地方,索引存储在另一个地方:索引带有指针,指向数据的 ...
- c# protected public private internal
1 internal 只能在一个项目中引用,不能跨项目引用,只有在同一程序集的文件中 2 public 最高级别的访问权限 对访问公共成员没有限制 3 private 最低级别的访问权限 只能在声明它 ...
- hadoop ha
https://blog.csdn.net/daydayup_668819/article/details/70815335 https://www.jianshu.com/p/8a6cc2d7206 ...
- [USACO07MAR]每月的费用Monthly Expense
题目:POJ3273.洛谷P2884. 题目大意:有n个数,要分成m份,每份的和要尽可能小,求这个情况下和最大的一份的和. 解题思路:二分答案,对每个答案进行贪心判断,如果最后得出份数>m,则说 ...
- Entity Framework的一个实例
环境:Visual studio2013+sql server本地数据库 创建一个C#应用程序,首先在nuget中添加Entity Framework 接下来的工作分为四个主要部分: 第一部分:App ...
- Win10平台下通过VMware虚拟机安装Win7、Ubuntu、Mac
1.安装VMware14.1.1 下载地址:https://download.csdn.net/download/jasonczy/10611423 产品秘钥: CG54H-D8D0H-H8DHY-C ...
- Ehcache学习总结(3)--Ehcache 整合Spring 使用页面、对象缓存
Ehcache 整合Spring 使用页面.对象缓存 Ehcache在很多项目中都出现过,用法也比较简单.一般的加些配置就可以了,而且Ehcache可以对页面.对象.数据进行缓存,同时支持集群/分布式 ...