剑指offer 二叉树中和为某一值的路径 java实现
2017-07-21 16:12
232 查看
题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
实现:
核心原理:使用递归
算法步骤:1.判断root是否为空,如果为空,返回 2.list中加入root.val,target记录剩余数值。3.当遍历到根节点时,判断target是否为0,如果为0,为目标路径加入listAll.
4,遍历左子树,右子树 5.list删除最后一个节点。
关键点 :list.remove(list.size()-1)
实现:
public class Solution { private ArrayList<ArrayList<Integer>> listAll = new ArrayList<ArrayList<Integer>>(); private ArrayList<Integer> list = new ArrayList<Integer>(); public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) { if(root == null) return listAll; list.add(root.val); target -= root.val; if(target == 0 && root.left == null && root.right == null) listAll.add(new ArrayList<Integer>(list)); FindPath(root.left, target); FindPath(root.right, target); list.remove(list.size()-1); return listAll; } }
核心原理:使用递归
算法步骤:1.判断root是否为空,如果为空,返回 2.list中加入root.val,target记录剩余数值。3.当遍历到根节点时,判断target是否为0,如果为0,为目标路径加入listAll.
4,遍历左子树,右子树 5.list删除最后一个节点。
关键点 :list.remove(list.size()-1)
相关文章推荐
- 剑指Offer 面试题34:二叉树中和为某一值的路径 Java代码实现
- 剑指offer--面试题25:二叉树中和为某一值的路径--Java实现
- 剑指Offer(Java版):二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的所有路径(java)
- 二叉树中和为某一值的路径 java实现
- 二叉树中和为某一值得路径 java实现
- 二叉树中和为某一值的路径(Java实现)
- 剑指Offer面试题25(Java版):二叉树中和为某一值的路径
- 在二叉树中找出和为某一值的所有路径-java实现
- 剑指offer----二叉树中和为某一值的路径----java实现
- 求二叉树根节点到子节点和为某一值的所有路径(Java实现)
- 剑指offer 面试题25 二叉树中和为某一值的路径-Java实现
- 剑指Offer:面试题25——二叉树中和为某一值的路径(java实现)
- 剑指offer第二十四题【二叉树中和为某一值的路径】c++实现
- 二叉树中和为某一值得路径java
- 剑指offer面试题之二叉树中和为某一值的所有路径
- 剑指offer系列之二十三:二叉树中和为某一值得所有路径
- 剑指offer --- 二叉树中和为某一数的路径
- 剑指offer:输出二叉树和为某一值的所有路径
- 《剑指offer》——二叉树中和为某一值的路径