树六:二叉树中和为某一值的路径

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

public class Six {
    static ArrayList<Integer> path = new ArrayList<Integer>();
    static ArrayList<ArrayList<Integer>>  list = new ArrayList<>();
    public static ArrayList<ArrayList<Integer>> one(TreeNode treeNode,int target) {
        if(treeNode ==null) {
            return list;
        }
        
        path.add(treeNode.var);
        target -= treeNode.var;
        
        if( target ==0 && treeNode.left== null && treeNode.right == null) {
            list.add(new ArrayList<>(path));
        }
        
        one(treeNode.left,target);
        one(treeNode.right,target);
        
        path.remove(path.size()-1);
        return list;
    }    
}
天助自助者
原文地址:https://www.cnblogs.com/ZeGod/p/9969505.html