JasonChang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 public class Solution {
 2     public ArrayList<ArrayList<Integer>> pathSum(TreeNode root, int sum) {
 3         // IMPORTANT: Please reset any member data you declared, as
 4         // the same Solution instance will be reused for each test case.
 5         ArrayList<Integer> list = new ArrayList<Integer>();
 6         ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
 7         if(root == null)
 8             return result;
 9         traversal(root, sum, list, result);
10         return result;
11     }
12     
13     private void traversal(TreeNode root, int sum, ArrayList<Integer> list, ArrayList<ArrayList<Integer>> result)
14     {
15         list.add(root.val);
16         if(root.left == null && root.right == null){
17             if(sum == root.val){
18                 ArrayList<Integer> tmp = new ArrayList<Integer>();
19                 tmp.addAll(list);
20                 result.add(tmp);
21             }
22         }
23             
24         if(root.left != null)
25             traversal(root.left, sum - root.val, list, result);
26         if(root.right != null)
27             traversal(root.right, sum - root.val, list, result);
28         list.remove(list.size() - 1);
29     }
30 }

 

posted on 2013-11-11 16:00  JasonChang  阅读(171)  评论(0编辑  收藏  举报