这轮关键词
- 只要求判断有无,如果是打印路径 就要注意数据结构
- 递归的入口 和 出口 ,以及 递归的子结构处理,都是难点
- 【】 如何结合常见的 树的深度遍历,基础还是第一位, 需要增加一个参数
- 【】处理路径和,不仅仅是加法, 可以用减法,到叶子就是0值
代码
class Solution {
public:
bool deepSearch(TreeNode* root, int sum){
//001 check
if(root ==NULL)
return false;
//收下买路钱
sum = sum - root->val;
//002 found it
if(root->left == NULL && root->right ==NULL && sum == 0){
return true;
}
//003 子结构
return deepSearch(root->left, sum ) || deepSearch(root->right,sum);
}
bool hasPathSum(TreeNode* root, int sum) {
// write code here
if(root == NULL ){
return false;
}
return deepSearch(root,sum);
}
};