leetcode 112 : 路径总和

题目

leetcode 112 : 路径总和

 

算法思想 :我们采用dfs的思想,如果到达叶子结点且路径和等于sum, 返回true否则都返回false。

 

bool dfs(TreeNode* root,int rev,int sum)
{
    if(root == NULL)
        if(rev == sum)
            return true;
        else
            return false;
    if(root->left == NULL && root->right != NULL)
        return dfs(root->right,rev+root->val,sum);
    if(root->left != NULL && root->right == NULL)    
        return dfs(root->left,rev+root->val,sum);
    return ( dfs(root->left,rev+root->val,sum) || dfs(root->right,rev+root->val,sum) );
}

bool hasPathSum(TreeNode* root, int sum) {
    if(root == NULL)
        return false;
    return dfs(root,0,sum);
}