public boolean hasPathSum (TreeNode root, int sum) { dfs(root, sum); return flag; } public void dfs(TreeNode root, int rest ){ //rest记录剩余值 if(root == null || flag) return; //当叶节点的值与剩余值相等时,true if(root.val == rest && root.left == null && root.right == null){ flag = true; return; } dfs(root.left , rest - root.val); dfs(root.right , rest - root.val); }