1. 程式人生 > >二叉樹中和為某一個值得路徑

二叉樹中和為某一個值得路徑

題目

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

程式碼

ArrayList<ArrayList<Integer>> listAll=new ArrayList<ArrayList<Integer>>();
    ArrayList<Integer> list=new ArrayList<>();
    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) //add方法新增的是引用,此處new一個ArrayList避免後續操作修改list listAll.
add(new ArrayList<Integer>(list)); FindPath(root.left, target); FindPath(root.right, target); list.remove(list.size()-1); //回退操作 return listAll; }