궁금한게 많은 개발자 노트

[ leetcode ] 112. Path Sum 본문

Algorithm

[ leetcode ] 112. Path Sum

궁금한게 많은 개발자 2023. 5. 9. 11:03

Binary Tree가 주어졌을 때, root에서 leaf node까지의 path에 해당하는 값들의 합이 targetSum과 일치하는 경로가 존재하는지 여부를 판단하는 문제입니다.

재귀를 활용하여 left, right 자식들로 들어가면서 leaf node가 되었을 시 targetSum이 0인지 확인하는 방식으로 해결하였습니다.

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    bool hasPathSum(TreeNode* root, int targetSum) {
        if (!root) return false;
        if (!root->left && !root->right && !(targetSum-root->val)) return true;
        bool left = hasPathSum(root->left, targetSum-root->val);
        bool right = hasPathSum(root->right, targetSum-root->val);
        return left || right;
    }
};

'Algorithm' 카테고리의 다른 글

[ leetcode ] 24. Swap Nodes in Pairs  (0) 2023.07.07
[ leetcode ] 859. Buddy Strings  (0) 2023.07.07
[ leetcode ] 78. Subsets  (0) 2023.05.02
[ leetcode ] 57. Insert Interval  (0) 2023.05.02
[ leetcode ] 450. Delete Node in a BST  (0) 2023.05.02
Comments