Path Sum II
Thoughts
Code
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
private void dfs(TreeNode node, int residual, List<Integer> path, List<List<Integer>> res) {
if (node == null) {
return;
}
path.add(node.val);
residual -= node.val;
if (node.left == null && node.right == null && residual == 0) {
res.add(new ArrayList<>(path));
}
dfs(node.left, residual, path, res);
dfs(node.right, residual, path, res);
residual += node.val;
path.remove(path.size() - 1);
}
public List<List<Integer>> pathSum(TreeNode root, int sum) {
List<List<Integer>> res = new ArrayList<>();
dfs(root, sum, new ArrayList<>(), res);
return res;
}
}Analysis
Ver. 2
Last updated