1. 程式人生 > >樹六:二叉樹中和為某一值的路徑

樹六:二叉樹中和為某一值的路徑

/**
 * 題目:二叉樹中和為某一值的路徑
 * 描述:   輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。
 *   路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑
 * 方案:
 *
 * */

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; } }