Leetcode/Top Interview 150
[Binary Tree General][Easy] 112. Path Sum
자전거통학
2024. 6. 2. 06:36
https://leetcode.com/problems/path-sum/description
Q. root 에서 leaf까지 가는 경로동안 그 합이 targetSum이 되는 것이 있으면 true를 반환하라.
Solution.
- 단순 경로 탐색 문제.
- 경로를 가는 동안 노드 값을 누적하고, leaf node인 순간 targetSum을 확인한다.
코드
더보기
bool hasPathSumToLeaf(TreeNode* node, int targetSum, int sum)
{
if(node == NULL)
return false;
sum += node->val;
if(node->left==NULL && node->right==NULL)
{
if(sum == targetSum)
return true;
return false;
}
bool left = hasPathSumToLeaf(node->left, targetSum, sum);
bool right = hasPathSumToLeaf(node->right, targetSum, sum);
if(left || right)
return true;
return false;
}
bool hasPathSum(TreeNode* root, int targetSum) {
if(root == NULL) return false;
int sum = 0;
return hasPathSumToLeaf(root, targetSum, sum);
}
결과.