dfs
public void dfs(TreeNode root, int sum, ArrayList<Integer> list, ArrayList<ArrayList<Integer> result){
// 若当前节点为空节点,返回
if(root == null){
return;
}
// 将当前节点的值存放到list中
ArrayList<Integer> sublist = new ArrayList<>(list);
sublist.add(root.val);
//若当前节点没有子节点, 判断加上当前节点的值是否等于期望的sum
if(root.left == null && root.right == null){
if(root.val == sum){
result.add(sublist);
return;
}
}else{
//若当前节点存在子节点,则dfs;
dfs(root.left, sum - root.val, sublist, result);
dfs(root.right, sum - root.val, sublist, result);
}
}