leetcode 112 路径总和
思路
- 深度优先遍历;
- 每遍历一个结点,targetSum 减去这个结点的 val;
- 当到达叶子结点时,判断 targetSum 是否为0;
题解
class Solution {
public:
bool hasPathSum(TreeNode* root, int targetSum) {
if(root == NULL) return false;
// 每遍历一个结点,targetSum 减去这个结点的 val;
targetSum -= root->val;
// 当到达 叶子 结点时,判断 targetSum 是否为0;
if(!root->left && !root->right) return targetSum == 0;
// dfs x
return hasPathSum(root->left, targetSum) || hasPathSum(root->right, targetSum);
}
};