113. Path Sum II

 1 class Solution {
 2     List<List<Integer>> res = new ArrayList<>();
 3     public List<List<Integer>> pathSum(TreeNode root, int sum) {
 4         if(root == null) return res;
 5         backtrack(root, sum, new ArrayList<>());
 6         return res;
 7     }
 8     
 9     public void backtrack(TreeNode root, int remain, List<Integer> list) {
10         if(root == null) {
11             list.add(0);
12             return;
13         }
14         remain -= root.val;
15         list.add(root.val);
16         if(root.left == null && root.right == null && remain == 0) {
17             res.add(new ArrayList<>(list));
18             return;
19         }
20         backtrack(root.left, remain, list);
21         list.remove(list.size() - 1);
22         backtrack(root.right, remain, list);
23         list.remove(list.size() - 1);
24         
25     }   
26 }

 

posted @ 2018-09-21 09:11  jasoncool1  阅读(98)  评论(0编辑  收藏  举报