【发布时间】:2015-10-17 23:33:54
【问题描述】:
问题 -> 给定一棵二叉树和一个总和,确定该树是否具有从根到叶的路径,使得沿该路径的所有值相加等于给定总和。
我的解决方案 ->
public class Solution {
public boolean hasPathSum(TreeNode root, int sum) {
if (root == null || sum == 0){
return false;
}
List<Integer> resultSet = new ArrayList<Integer>();
Integer result = root.val;
inorder(root, result, resultSet);
return resultSet.contains(sum);
}
public void inorder(TreeNode root, Integer result, List<Integer> resultSet){
if (root.left == null && root.right == null){
resultSet.add(result);
}
if (root.left != null) {
result += Integer.valueOf(root.left.val);
inorder(root.left, result, resultSet);
}
if (root.right != null) {
result += Integer.valueOf(root.right.val);
inorder(root.right, result, resultSet);
}
}
}
输出->
输入: [1,-2,-3,1,3,-2,null,-1] 3 输出:真 预期:错误
我真的不确定我哪里出了问题。我尝试使用 result 的 int 和 Integer 类型选项,但它不起作用。请帮忙。
【问题讨论】:
标签: java data-structures tree