首页 > 其他 > 详细

剑指offer24

时间:2018-01-21 14:43:28      阅读:188      评论:0      收藏:0      [点我收藏+]
package jianzhiOffer; import java.util.ArrayList; /**  * 输入一颗二叉树和一个整数,打印出二叉树中结点值的和  * 为输入整数的所有路径。路径定义为从树的根结点开始往  * 下一直到叶结点所经过的结点形成一条路径。  * @author user  * 思路:既然某一条路径加起来的值为target,那么就用  * target从根节点进行减,减到叶节点时,如果值为零,  * 则这条路径可以用。  * 采用递归的思路:先让target减去根节点,再减它的子节点  * ,再减子节点的子节点,以此一直递归下去  */ class TreeNode4 {     int val = 0;     TreeNode4 left = null;     TreeNode4 right = null;     public TreeNode4(int val) {         this.val = val;     } } public class ch24 { ArrayList<Integer> list = new ArrayList<>(); ArrayList<ArrayList<Integer>> listAll = new ArrayList<>(); public ArrayList<ArrayList<Integer>> FindPath(TreeNode4 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;     } }


剑指offer24

原文:http://blog.51cto.com/12222886/2063350

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!