博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树中和为某一值的所有路径
阅读量:4883 次
发布时间:2019-06-11

本文共 1293 字,大约阅读时间需要 4 分钟。

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

import java.util.ArrayList;/**public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/import java.util.ArrayList;import java.util.Stack;public class Solution {    public ArrayList
> FindPath(TreeNode root, int target) { ArrayList
> pathList = new ArrayList
>(); if(root==null) return pathList; Stack
stack=new Stack
(); FindPath(root,target,stack,pathList); return pathList; } private void FindPath(TreeNode root, int target, Stack
path, ArrayList
> pathList) { if(root==null) return; //如果是叶子节点 if(root.left==null&&root.right==null){ if(root.val==target){ //如果叶子节点上的值正好等于target的值 ArrayList
list=new ArrayList
(); for(int i:path){ list.add(new Integer(i)); } list.add(new Integer(root.val)); pathList.add(list); } } else{ //如果不是叶子节点继续往下迭代,一直迭代到叶子节点。 path.push(new Integer(root.val)); FindPath(root.left, target-root.val, path, pathList); FindPath(root.right, target-root.val, path, pathList); //如果走到这里说明走到左右子节点都不满足,所以需要向上移动一个节点 //所以使用path.pop() path.pop(); } }}

 

转载于:https://www.cnblogs.com/LoganChen/p/6818675.html

你可能感兴趣的文章
Python:GeoJson格式的多边形裁剪Tiff影像并计算栅格数值
查看>>
免费下载知网文献的方法 | sci-hub免费下载SCI论文方法
查看>>
测试用例,变量之间,相互调用的方法,和修改原来初始化变量的方法
查看>>
ASP.NET MVC中将控制器分离到类库的实现(转)
查看>>
Poj 2304 Combination Lock(模拟顺、逆时钟开组合锁)
查看>>
Palindrome Number
查看>>
H5上传功能
查看>>
PHP命名空间(Namespace)的使用详解
查看>>
java项目@override报错问题
查看>>
DataTable 和Json 字符串互转
查看>>
Django中Template does not exit
查看>>
Redis安装 java中的连接 序列化 反序列化
查看>>
hdu 1896 优先队列的应用
查看>>
递推和迭代的比较
查看>>
OpenGL 头文件,库文件
查看>>
点与不规则图形关系判断
查看>>
linux不开启图形界面
查看>>
菜鸟学习SSH(二)——Struts国际化
查看>>
iOS 自定义控件--重写一些方法
查看>>
第二次冲刺作业
查看>>