leetcode 112 路径总和

89 阅读1分钟

leetcode 112 路径总和

思路

  1. 深度优先遍历;
  2. 每遍历一个结点,targetSum 减去这个结点的 val;
  3. 当到达叶子结点时,判断 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);
    }
};