给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
思路:递归,利用左中右的思路,一次遍历从左中右,判断是否满足条件路径和等于target
class Solution {
List<List<Integer>> list1;
List<Integer> list2;
public List<List<Integer>> pathSum(TreeNode root, int target) {
list1=new LinkedList<List<Integer>>();
list2=new LinkedList<>();
dfs(root,target);
return list1;
}
void dfs(TreeNode root,int target){
if(root==null) return;
list2.add(root.val);
if(target-root.val==0&&(root.right==null&&root.left==null)){
list1.add(new LinkedList(list2));
}
dfs(root.left,target-root.val);
dfs(root.right,target-root.val);
list2.remove(list2.size()-1);
}
}