Range Sum of BST - LeetCode
문제 접근 🤔
- DFS를 통해 트리의 정점들이
low ≤ 정점 ≤ high 를 만족하는지 확인하고, 조건을 만족하면 sum 에 더해준다.
놓쳤던 부분 😅
코드 😁
파이썬 코드(130 ms)
class Solution:
def rangeSumBST(self, root: Optional[TreeNode], low: int, high: int) -> int:
self.sum = 0
def dfs(node):
if not node:
return
if node.val and node.val >= low and node.val <= high:
self.sum += node.val
dfs(node.left)
dfs(node.right)
dfs(root)
return self.sum
자바스크립트 코드(117 ms)
const rangeSumBST = (root, low, high) => {
let sum = 0;
const dfs = (node) => {
if (!node) {
return 0;
}
if (!!node.val && node.val >= low && node.val <= high) {
sum += node.val;
}
dfs(node.left);
dfs(node.right);
};
dfs(root);
return sum;
};