24.二叉树中和为某一值的路径(python)
2024-09-05 17:33:50
题目描述
输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)
import copy
class Solution:
# 返回二维列表,内部每个列表表示找到的路径
def FindPath(self, root, expectNumber):
# write code here
if root == None:
return []
support = [root]
supportArrayList = [[root.val]]
ret=[]
while support:
tmpNode = support[0]
tmpArrayList=supportArrayList[0]
if tmpNode.left==None and tmpNode.right == None:
if sum(tmpArrayList)==expectNumber:
ret.insert(0,tmpArrayList)
if tmpNode.left:
support.append(tmpNode.left)
newtmpArrayList =copy.copy(tmpArrayList)
newtmpArrayList.append(tmpNode.left.val)
supportArrayList.append(newtmpArrayList)
if tmpNode.right:
support.append(tmpNode.right)
newtmpArrayList = copy.copy(tmpArrayList)
newtmpArrayList.append(tmpNode.right.val)
supportArrayList.append(newtmpArrayList)
del support[0]
del supportArrayList[0]
return ret
2019-12-15 09:28:59
最新文章
- 使用RequireJS并实现一个自己的模块加载器 (一)
- 关于oracle中数据类型的选择
- 生成树的个数——基尔霍夫定理(Matrix-Tree Theorem)
- ArrayList与LinkedList区别
- 企业级账号更新app
- 在安装MySQL Workbentch的时候出现如下问题,已经解决。
- Jetty监控线程使用情况的配置
- 关于521(nyoj)
- Qt学习:线程间共享数据(使用信号槽传递数据,必须提前使用qRegisterMetaType来注册参数的类型)
- 页面导入样式时,使用link和@import有什么区别?
- [git] 细说commit (git add/commit/diff/rm/reset 以及 index 的概念)
- win10 jkd配置注意事项
- vuex 改变状态值得命名问题
- Oracle列转行函数使用
- maven如果正常配置不成功,就按照我的就可以配置成功了
- spring boot 接口用例测试
- jieba分词器
- CF776B Sherlock and his girlfriend
- 51nod 1378 夹克老爷的愤怒(树型dp+贪心)
- flask-前台布局页面搭建3
热门文章
- 定位网页元素、透明度、z-index、包裹性和破坏性
- string中getline,cin的方法getline(),get总结
- SSM的开发步骤分析
- DMA(Direct Memory Access直接存储器访问)总结
- kettle学习资料
- 使用rsync在linux(服务端)与windows(客户端)之间同步
- [转载]神经网络偏置项(bias)的设置及作用
- CF1090H Linearization
- ELK-全文检索技术-lucene
- 剑指offer-7:调整数组顺序使奇数位于偶数前面