/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @param sum int整型 * @return bool布尔型 */ void answer(TreeNode*root,int num,int sum,bool &flag) { if(root) { num+=root->val; if(root->left==NULL && root->right==NULL) { if(num==sum) { flag=1; return; } } answer(root->left,num,sum,flag); answer(root->right,num,sum,flag); } } bool hasPathSum(TreeNode* root, int sum) { if(root==NULL) { return 0; } int i=0; bool flag=0; answer(root,i,sum,flag); return flag; } };