给定一棵二叉树,二叉树每个节点的值唯一,从根节点开始找出路径上的所有节点的节点值之和等于规定值的路径
来源:互联网 发布:java飞机大战代码详解 编辑:程序博客网 时间:2024/05/12 02:40
思路:以先序遍历(根节点-左子树-右子树)的方式访问二叉树的每一个节点,记录根节点到遍历到这个节点的所有节点值之和,同时用一个list存储遍历的路径,若节点和等于给定值则返回路径,直到叶子节点,结束递归。
用到的数据结构:ArrayList,stack
代码如下:
import java.util.ArrayList;import java.util.Stack;/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) { ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>(); if(root==null){ return result; } Stack<Integer> stack = new Stack<>(); FindPath(root, target, stack, result); return result; } private void FindPath(TreeNode root, int target, Stack<Integer> stack, ArrayList<ArrayList<Integer>> result) { if(root==null){ return; } if(root.left==null&&root.right==null){ if(root.val==target){ ArrayList<Integer> list = new ArrayList<>(); for(int i:stack){ list.add(i); } list.add(root.val); result.add(list); } }else{ stack.push(root.val); FindPath(root.left, target-root.val, stack, result); FindPath(root.right, target-root.val, stack, result); stack.pop(); } }}
0 0
- 给定一棵二叉树,二叉树每个节点的值唯一,从根节点开始找出路径上的所有节点的节点值之和等于规定值的路径
- PathSum2 给出所有的树根节点到叶子节点之和等于给定值的所有路径
- 对于一颗给定的二叉树,输出所有从根节点到叶节点的路径
- 给定一棵二叉树,找到它的最小深度。最小深度是从根节点到最近叶节点的最短路径上的节点数量
- 查看一颗二叉树从根到叶子路径的节点和是否等于某个给定的数
- 节点数值总和等于某个给定值的所有路径
- 找出二叉树所有到叶子节点的路径
- 二叉树中根到叶子路径中节点和等于给定值的路径
- 二叉树中根到叶子路径中节点和等于给定值的路径
- 二叉树中根到叶子路径中节点和等于给定值的路径
- 寻找二叉树中和为固定值的从根节点到叶节点的所有路径
- 找出所有从根节点到叶子节点路径和等于n的路径并输出
- 找出所有从根节点到叶子节点路径和等于n的路径并输出
- 找出二叉树中和最大的路径,路径可以从任意节点开始,到任意节点结束。
- 打印从根节点到二叉树中指定值节点的路径
- 求二叉树从根节点到每个叶子节点路径上不重复数字的最大个数
- 找出二叉树中距离给定节点为k的节点
- 打印二叉树从根节点到叶子节点的所有路径
- Cuda+Chainer训练Artistic style模型GPU加速配置
- hdu 5765 Bonds 状压
- 前序 中序 后序 遍历 递归 非递归算法 java实现
- bzoj2753滑雪与时间胶囊(最小生成树)
- 图解正向代理、反向代理、透明代理
- 给定一棵二叉树,二叉树每个节点的值唯一,从根节点开始找出路径上的所有节点的节点值之和等于规定值的路径
- Web项目中使用Spring 3.x + Quartz 2.x实现作业调度详解
- 编码和软编码的区别
- Umeng - 友盟登录和分享
- linux开机启动记录
- String类中的equals()方法
- 设计模式之建造者模式
- SpannableString的使用
- svn安装和出现问题解决办法