Description:
题目大意:给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。
解题思路:
算法标签:DFS
代码:
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
bool DFS(TreeNode* root,int tot,int sum) {
if(root == NULL)
return false;
if((root -> left == NULL) && (root -> right == NULL) && (tot + root -> val == sum))
return true;
return DFS(root -> left , tot + root -> val , sum) || DFS(root -> right , tot + root -> val , sum);
}
bool hasPathSum(TreeNode* root, int sum) {
if(root == NULL)
return false;
return DFS(root , 0 ,sum);
}
};