LeetCode#113. Path Sum II

来源:互联网 发布:mysql和oracle的比较 编辑:程序博客网 时间:2024/05/24 16:13
  • 题目:找出所有从根节点到叶子节点的路径,使得路径节点值之和等于sum
  • 难度:Medium
  • 思路:先序遍历二叉树,将当前结果加入结果集tmpList中,遍历的过程中,不断更新sum,直到sum等于node.val
  • 代码:
public class Solution {    public List<List<Integer>> pathSum(TreeNode root, int sum) {        List<List<Integer>> result = new ArrayList<>();        if(root == null){            return result;        }        helper(result, new ArrayList<>(), sum, root);        return result;    }    public void helper(List<List<Integer>> list, List<Integer> tmp, int sum, TreeNode node){        tmp.add(node.val);        if(node.val == sum  && node.left == null && node.right == null){            list.add(tmp);            return;        }        if(node.left != null){            helper(list, new ArrayList<>(tmp), sum-node.val, node.left);        }        if(node.right != null){            helper(list, new ArrayList<>(tmp), sum-node.val, node.right);        }    }}