根节点到叶子节点路径之和为target

//递归吧,但是在递归到底的条件上要判断好,比如说完整路径是到叶子节点,也就是说左右子节点都为空,并且这时候的root.val==target表示找到了一个list,再返回。

但是因为我并没有直接就用target-root.val,所以在有些情况下,比如说遇到一个null节点的时候,我们不能直接返回,需要给这个list加一个值,因为返回到上一层之后我们会remove掉list中的最后一个元素,所以我们每次递归的时候都要给list加一个元素,不然返回到上一层的时候节点元素对不上,这是一个要注意的点,

还有就是如果它不是叶子节点,并且这时候的root.val>=target了,也就是下面那个else,我们就可以不继续递归下去了,直接返回就可以了,

**或者说你可以上来就直接把val值给弄掉,这样有的时候就不需要给list加一个无关紧要的值了,但是这个结束就是target==0了。

 1 import java.util.ArrayList;
 2 /**
 3 public class TreeNode {
 4     int val = 0;
 5     TreeNode left = null;
 6     TreeNode right = null;
 7 
 8     public TreeNode(int val) {
 9         this.val = val;
10 
11     }
12 
13 }
14 */
15 public class Solution {
16     ArrayList<ArrayList<Integer>> res=new ArrayList<>();
17     public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {
18         ArrayList<Integer> list=new ArrayList<>();
19         if(root==null)
20             return res;
21         helper(root,target,list);
22         return res;
23     }
24     public void helper(TreeNode root, int target,ArrayList<Integer> list)
25     {
26          if(root==null)
27           {
28             list.add(0);
29              return ;
30          }
31         if(root.left==null&&root.right==null)
32         {
33             if(root.val==target)
34             {
35                 list.add(root.val);
36                 res.add(new ArrayList<Integer>(list));
37                 return ;
38             }
39             else
40                 {
41                 list.add(0);
42                  return ;
43          }
44         }
45         if(root.val<target)
46         {
47             list.add(root.val);
48             helper(root.left,target-root.val,list);
49             list.remove(list.size()-1);
50             helper(root.right,target-root.val,list);
51             list.remove(list.size()-1);
52         }
53         else
54             {
55                 list.add(0);
56                 return ;
57         }
58         return ;
59         
60     }
61 }
原文地址:https://www.cnblogs.com/cold-windy/p/11546936.html