首页 > 代码库 > Problem Path Sum II
Problem Path Sum II
Problem Description: Given a binary tree and a sum, find all root-to-leaf paths where each path‘s sum equals the given sum.
Solution: 递归。
1 public List<List<Integer>> pathSum(TreeNode root, int sum) { 2 List<List<Integer>> list = new ArrayList<List<Integer>>(); 3 if (root == null) return list; 4 List<Integer> tmp = new ArrayList<Integer>(); 5 path(root, sum, list, tmp); 6 return list; 7 } 8 public void path(TreeNode root, int sum, List<List<Integer>> list, List<Integer> tmp) { 9 if (root == null) return;10 tmp.add(root.val);11 int leftsum = sum - root.val;12 13 if (leftsum == 0 && root.left == null && root.right == null) {14 list.add(new ArrayList<Integer>(tmp));15 }16 path(root.left, leftsum, list, tmp);17 path(root.right, leftsum, list, tmp);18 19 tmp.remove(tmp.size() - 1);20 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。