问题: 给定一棵二叉树和一个值,判断是否存在从根到叶子节点的路径和等于给定的值。
思路: 采用递归的方式,如果当前为非叶子节点,递归处理其子节点,传递目标值减去当前节点的值,如果是叶子节点,比较当前值和目标值,如果为空,返回False。
java代码:
public boolean hasPathSum(TreeNode root,int sum){
if(root==null)
return false;
if(root.right==null&&root.left==null)
return root.val==sum;
return hasPathSum(root.left,sum-root.val)||
hasPathSum(root.right,sum-root.val);
}