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

题目描述

  输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。


思路

  1. 前序遍历二叉树,每次更新当前路径的和curtSum;
  2. 判断当前结点是否是叶子结点,以及curtSum是否等于expectNumber。如果是,把当前路径保存在res结果中;
  3. 若不符合条件,则弹出此结点。

实现代码

/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function FindPath(root, expectNumber) {
var result = [];
if (root === null) {
return result;
}
dfsFind(root, expectNumber, [], 0, result);
return result; }
function dfsFind(root, expectNumber, path, currentSum, result) {
currentSum += root.val; path.push(root.val); if (currentSum == expectNumber && root.left == null && root.right == null) {
result.push(path.slice(0));
}
if (root.left != null) {
dfsFind(root.left, expectNumber, path, currentSum, result);
} if (root.right != null) {
dfsFind(root.right, expectNumber, path, currentSum, result);
} path.pop();
}

最新文章

  1. React 生命周期
  2. 【原创】开源.NET排列组合组件KwCombinatorics使用(一)—组合生成
  3. java多线程系类:JUC原子类:04之AtomicReference原子类
  4. 如何把一个android工程作为另外一个android工程的lib库
  5. NuGet 发布
  6. error splicing file: file too large解决方法
  7. [转]IP_ADD_MEMBERSHIP : 组播错误 的解决方法:
  8. ORA-12571 : TNS : 包写入程序失败
  9. 从unity3d官网下载教程
  10. Spring 数据源配置三:多数据源
  11. Python 文件操作模块 shutil 详解
  12. Plugin For KanColleViewer – Provissy Tools V1.0
  13. Gym 100952G&&2015 HIAST Collegiate Programming Contest G. The jar of divisors【简单博弈】
  14. .net好好地利用Conditional属性
  15. sgu438-The_Glorious_Karlutka_River
  16. JS求任意字符串中出现最多的字符以及出现的次数
  17. netcore webapi统一配置跨域问题
  18. 51nod1615
  19. August 11th 2017 Week 32nd Friday
  20. 用Python爬下今日头条所有美女,美滋滋!

热门文章

  1. Linux(Contos7.5)环境搭建之Gitblit安装(三)
  2. js中使用对象注意
  3. Linux里的2>&1的理解
  4. sqlDataAdapter和SqlCommand的区别
  5. 剑指offer:旋转数组的最小数字
  6. HDU 3853 LOOPS 期望dp
  7. mabatis报错 Result Maps collection already contains value for gamedataserver.dao.one.ChargeRecordMapper.BaseResultMap
  8. week2-作业2
  9. 项目冲刺Beta第二篇博客
  10. ASP.NET MVC 5.0 参考源码索引