寻找二叉树的路径,使得路径和等于一个指定的整数

思路:递归思想

 1 import java.util.ArrayList;
 2 /**
 3 public class TreeNode {
 4     int val = 0;
 5     TreeNode left = null;
 6     TreeNode right = null;
 7
 8     public TreeNode(int val) {
 9         this.val = val;
10
11     }
12
13 }
14 */
15 public class Solution {
16     ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>();//最终结果
17     ArrayList <Integer> tmp=new ArrayList<Integer>();
18     int sum=0;//统计累加和
19     public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {
20         if(root==null) return result;//此句不反悔 说明根节点不为空
21         sum=sum+root.val;
22         tmp.add(root.val);
23         if(root.left==null&&root.right==null&&sum==target){//得到目标路径之一   将目标路径添加到结果集
24             ArrayList<Integer>path=new ArrayList<Integer>();
25             for(int i=0;i<tmp.size();i++){
26                 path.add(tmp.get(i));
27             }
28             result.add(path);
29             //return result;  此处不能加return  否则在成功找到一条路径后 不能回退到父节点
30         }
31         if(sum<target&&root.left!=null)FindPath(root.left,target);
32         if(sum<target&&root.right!=null)FindPath(root.right,target);
33         //到达叶子节点或者累加值大于目标和
34         sum=sum-root.val;//去掉该节点   回退到父节点
35         tmp.remove(tmp.size()-1);
36         return result;
37     }
38 }

原文地址:https://www.cnblogs.com/bolianggufeng/p/8579400.html

时间: 2024-10-10 03:49:16

寻找二叉树的路径,使得路径和等于一个指定的整数的相关文章

Java 集合、数组 任意个数数字相加等于一个指定的数

一组数字 任意个数数字相加的和等于指定的数字.  比如数字集合 1,2,3, 4,5,6  ,列出所有数字相加等于6的可能性,那么结果有:1+2+3,2+4, 主要这里的结果不是数组打乱顺序相加,而是按照数组顺序取任意个数相加减,所有大家看到结果只有1+2+3而没有1+3+2或则3+2+1 step1.实体类: static class TestDTO { String id; //id Integer num;//数字 public String getId() { return id; }

二叉树遍历的应用(路径和问题,判断是否是二叉搜索树,判断是否是二叉平衡树)

现在越发觉得关于树的问题真是千变万化,随便改一个条件又会是一个新的问题. 先序遍历求二叉树路径问题 问题:一棵二叉树每个节点包含一个整数,请设计一个算法输出所有满足条件的路径:此路径上所有节点之和等于给定值.注意此类路径不要求必须从根节点开始. 如果没有最后一个条件,这道题在leetcode上面见过,就是采取先序遍历的方式并记录下路径.但是加上最后一个条件后需要转下弯思考一下. 当然也需要记录下路径,并且记得要回溯.加上不要求从根节点开始这个条件后可以这么思考,每次遍历到当前节点时,从路径中查找

php glob()函数实现目录文件遍历与寻找与模式匹配的文件路径

采用PHP函数glob实现寻找与模式匹配的文件路径,主要讨论glob()函数的作用和用法,利用glob函数读取目录比其它的要快N倍,因为glob函数是内置函数处理起来自然要快. 一,函数原型 array glob ( string pattern [, int flags] ) 注意:glob()函数获取的是一个数组,其返回一个包含有匹配文件/目录的数组.如果出错返回FALSE 二,版本兼容 PHP 4 >= 4.3.0, PHP 5 三,函数的基础用法与实例 1,匹配目录下.txt后缀的文件

编程实现求一棵二叉树的最短树路径和最长树路径

Minimum Depth of Binary Tree Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. class Solution { public: int minDepth(TreeNode *root) { if(!r

图解leetcode —— 124. 二叉树中的最大路径和

前言: 每道题附带动态示意图,提供java.python两种语言答案,力求提供leetcode最优解. 描述: 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 6 示例 2: 输入: [-10,9,20,null,null,15,7] -10   / \  9  20    /  \   15   7 输出: 42 思路: java

C\C++编程中:相对路径+绝对路径

电脑硬盘E盘下,建文件夹“test”,"test"下建立子文件夹“file”,"file"下建子文件夹“data”, 电脑资源管理器显示目录  E:\test\file\data 当前 路径 E:\test\file =================================================== 1. 相对路径 ,用正斜杠’/‘ 1.1向上一级目录指向 ./    表示当前路径,相当于E:\test\file ../  表示当前路径的上一级路

JAVA File的创建及相对路径绝对路径

http://blog.sina.com.cn/s/blog_9386f17b0100w2vv.html JAVA File的创建及相对路径绝对路径 (2011-12-09 08:27:56) 转载▼ 标签: 杂谈 分类: 技术 File f = new File("D:/test/mytest.txt");//当执行这句话后在内存的栈空间存在一个f的应用,在堆空间里存在一个mytest.txt对象.注意 这个对象只含有文件的属性(如大小,是否可读,修改时间等),不包含文件的内容,所以

帝国cms 图片相对路径绝对路径设置问题+帝国cms 手机端调用图片问题

首先说第一个问题:帝国cms 图片相对路径绝对路径设置问题 这个是直接在后台可以设置的: 系统--系统设置--系统参数设置--基本属性--修改附件地址-- /d/file/(相对路径) http://www.qyhongyan.com/d/file/(绝对路径) 解决上面问题的前提是在制作之初就选定,不然后期改回很纠结的 从上面问题我们又会衍生出新的问题: 1.使用绝对路径:pc调用正常,手机调用也正常,但是有一个问题就是不可"移植" 如果域名更换,所有的图片链接全部失效,需要重新上传

[原创题] 树上点到路径的距离, 以及树上路径到路径的距离

在学习平面几何的时候, 我们介绍了点, 直线和圆, 随后就研究了它们之间的一些数量关系. 现在的载体变成了树. 对于一棵树, 我们定义了点和路径, 那么不妨可以研究一下点与点的距离, 点到路径的距离, 路径到路径的距离. 点与点的距离 $dist(x, y) = d[x] + d[y] - d[LCA(x, y)]$ . 点到路径的距离 定义 $dist(x, path(a, b)) = \min_{d \in path(a, b)} dist(x, d)$ . $dist(x, path(a,