import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param root TreeNode类 * @param sum int整型 * @return bool布尔型 */ //这道题 递归解法,找左右子树是否有 sum-root.val 的路径 不用打印路径了,相对简单一点 public boolean hasPathSum (TreeNode root, int sum) { // write code here if(root==null){ return false; } //处理叶子节点 if(root.left==null&&root.right==null){ if(root.val==sum){ return true; }else{ return false; } } boolean leftHas=hasPathSum(root.left,sum-root.val); boolean rightHas=hasPathSum(root.right,sum-root.val); boolean cur=leftHas||rightHas; return cur; } }