Sorry about the last post.. I touched tab by mistake and It posted it. Check this one!

```
public class Solution {
// Two global containers.
List<List<Integer>> res = new ArrayList<>();
List<Integer> curr = new ArrayList<>();
public List<List<Integer>> pathSum(TreeNode root, int sum) {
if(root == null) return res;
curr.add(root.val);//Add the value to the curr.
if(root != null && root.left == null&&root.right ==null)
//if the remaining value is equal to the node value, we got a valid path.
if(sum == root.val)
res.add(new ArrayList<Integer>(curr));
pathSum(root.left,sum - root.val);// sum -root is the remaining value we need to satisfy
pathSum(root.right,sum - root.val);
curr.remove(curr.size() - 1);// remember to discard the latest used value.
return res;
}
}
```