leetcode 38:path-sum
题目描述
给定一个二叉树和一个值 sum\ sum sum,判断是否有从根节点到叶子节点的节点值之和等于 sum\ sum sum 的路径,
例如:
给出如下的二叉树, sum=22\ sum=22 sum=22,
返回true,因为存在一条路径 5→4→11→25\to 4\to 11\to 25→4→11→2的节点值之和为 22
例如:
给出如下的二叉树, sum=22\ sum=22 sum=22,
返回true,因为存在一条路径 5→4→11→25\to 4\to 11\to 25→4→11→2的节点值之和为 22
题目分析:
代码如下:
1 bool hasPathSum(TreeNode* root, int sum) { 2 if(root == NULL) 3 return false; 4 sum -= root->val; 5 if(root->left == NULL && root->right == NULL && sum == 0) 6 return true; 7 else 8 return hasPathSum(root->left, sum) || hasPathSum(root->right, sum); 9 }