/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @param root TreeNode类 * @param sum int整型 * @return bool布尔型 */ bool flag=false; bool hasPathSum(TreeNode* root, int sum) { Find(root,sum); return flag; // write code here } void Find(TreeNode *root,int sum){ //递归出口 if(root==NULL){ return; } //dfs路径已走完 else if(!root->left&&!root->right&&root->val==sum){ flag=true; } //继续走dfs路径 else{ if(root->left){ Find(root->left,sum-root->val); } if(root->right){ Find(root->right,sum-root->val); } } } };