/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     *
     * @param root TreeNode类
     * @param sum int整型
     * @return bool布尔型
     */
    public boolean hasPathSum (TreeNode root, int sum) {
        if(root==null) return false;
        sum -= root.val;
        if(root.left==null && root.right == null){ // 叶子节点
            return sum==0;
        } else { // 非叶子节点
            return (root.left!=null && hasPathSum(root.left, sum)) || (root.right!=null && hasPathSum(root.right, sum));
        }
    }
}