题目描述
题解一:dfs+回溯
class Solution {
List<List<Integer>> list;
List<Integer> temp;
public List<List<Integer>> pathSum(TreeNode root, int sum) {
list = new ArrayList();
temp = new ArrayList();
dfs(root,sum);
return list;
}
public void dfs(TreeNode root,int sum){
if(root==null) return;
temp.add(root.val);
if(root.left==null&&root.right==null&&sum==root.val){
list.add(new ArrayList(temp));
}
dfs(root.left,sum-root.val);
dfs(root.right,sum-root.val);
temp.remove(temp.size()-1);
}
}