给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。
叶子节点 是指没有子节点的节点。
public boolean hasPathSum(TreeNode root, int targetSum) {
if(root == null){
return false;
}
if(root.left==null&&root.right==null&&root.val==targetSum){
return true;
}
return(hasPathSum(root.left, targetSum-root.val)||hasPathSum(root.right, targetSum-root.val));
}
由于方法返回boolean 因此想到return后接方法
并且由于只需要遍历一条路来进行比较,因此可以用到 || ,这代表着只要一条路能满足条件就完成。而不需要所有路都满足条件。
当时最开始写的时候就是不知道怎么在避免遍历所有节点的情况下遍历一条路。