每日一题
-
题目:路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。
-
解法:
这道题要求我们算根节点到叶子路径结点之和是否等于目标值targetSum,假设根节点到叶子结点的和为val,那么就是说根据递归的算法,将target的值减去当前结点的值,然后再递归,到最后判断是否等于叶子结点的值,如果相等就说明到叶子结点的路径之和等于目标值
-
代码如下:
public boolean Answer(TreeNode root,int targetSum){ if(root==null){ return false; } if(root.left==null&&root.right==null){ return targetSu == root.val; } return Answer(root.left,targetSum-root.val)||Answer(root.right,targetSum-root.val); }