LeetCode/solutions/112. Path Sum.md

676 B
Raw Blame History

112. Path Sum

思路

根据题意若树空则肯定是false若非空则:

  • 若没有左右子树(叶子),判断其值是否满足条件;
  • 否则,递归判断其左右子树是否满足,只要有一个满足即满足(即或操作)。

C++

class Solution {
public:
    bool hasPathSum(TreeNode* root, int sum) {
        if(root == NULL) return false;
        if(root -> left == NULL && root -> right == NULL && sum == (root -> val)) return true; // 叶子节点
        return hasPathSum(root -> left, sum - (root -> val)) || hasPathSum(root -> right, sum - (root -> val));
    }
};