题目: 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
相关名词解释:
叶子结点:指没有左右宝宝的结点
举例:
思路: 本题判断 是否存在 从根结点root到叶子结点的结点值之和为给定的sum。则可以转换为求解从root.left 或 root.right 开始到叶子结点是否有满足结点值相加满足sum-roo.val的路径,即 hasPathSum(root.left,sum-root.val) || hasPathSum(root.right, sum-root.val)
Code
class Solution {
public boolean hasPathSum(TreeNode root) {
if (root == null) {
return false;
}
if (root.left == null && root.right == null) {
return root.val == sum;
}
return hasPatnSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val);
}
}