113. Path Sum II
class Solution {
public List<List<Integer>> pathSum(TreeNode root, int targetSum) {
List<List<Integer>> result = new LinkedList<>();
dfs(root, targetSum, new LinkedList<Integer>(), result);
return result;
}
private void dfs(TreeNode node, int sum, List<Integer> path, List<List<Integer>> res){
if (node == null) return;
path.add(node.val);
if (node.left == null && node.right == null && sum == node.val){
// ctor: new LinkedList<>(Collection);
res.add(new LinkedList<Integer>(path));
}
dfs(node.left, sum-node.val, path, res);
dfs(node.right, sum-node.val, path, res);
// method: list.remove(int index);
path.remove(path.size()-1);
}
}
Last updated
Was this helpful?