题解 | 二叉树中和为某一值的路径(一) 递归最重要的就是理清终止条件以及递推关系,不要在脑子里压栈

二叉树中和为某一值的路径(一)

https://www.nowcoder.com/practice/508378c0823c423baa723ce448cbfd0c

/**
 * 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布尔型
     */
    bool hasPathSum(TreeNode* root, int sum) {
        // write code here
        //无回溯 纯递归
        
        return readpath(root,sum);

    }
    bool readpath(TreeNode* root,int sum){
        if(root==nullptr)return false;
        if(root->left==nullptr&&root->right==nullptr&&sum-root->val==0)return true;
        bool left=readpath(root->left, sum-root->val);
        bool right=readpath(root->right, sum-root->val);
        return left||right;
    }

};

全部评论

相关推荐

04-03 22:41
兰州大学 C++
老六f:有时候是HR发错了,我之前投的百度的后端开发,他给我发的算法工程师,但是确实面的就是百度开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务