【LeetCode】Path Sum II

题目:Path Sum II

<span style="font-size:18px;">/**LeetCode Path Sum II * 给定一棵二叉树,和一个目标值,找到值相加等于目标值的所有路径的集合 * 遍历所有路径,找到值符合的 * Definition for binary tree * public class TreeNode { *int val; *TreeNode left; *TreeNode right; *TreeNode(int x) { val = x; } * } * */package javaTrain;import java.util.ArrayList;import java.util.List;public class Train11 {public List<List<Integer>> pathSum(TreeNode root, int sum) {List<List<Integer>> lists = new ArrayList();List<Integer> list = new ArrayList();help(root,sum,lists,list);return lists;}private void help(TreeNode root,int sum,List<List<Integer>> lists,List<Integer> list){if(root == null) return;list.add(root.val);if(root.left == null && root.right == null && root.val == sum){List<Integer> newList = new ArrayList(list);lists.add(newList);//return 不能在这里返回,因为list中有这层的叶节点,因为还要找别的路径,所以的回溯到上一节点}help(root.left,sum-root.val,lists,list);help(root.right,sum-root.val,lists,list);list.remove(list.size()-1);//在这,将这层节点从list中去除}}</span>

,告诉自己,我这次失败了,重新开始吧!下次我会吸取教训,不让自己犯同样的错误的

【LeetCode】Path Sum II

相关文章:

你感兴趣的文章:

标签云: