# 938. Range Sum of BST

Given the `root` node of a binary search tree, return the sum of values of all nodes with value between `L` and `R` (inclusive).

The binary search tree is guaranteed to have unique values.

Example 1:

``````Input: root = [10,5,15,3,7,null,18], L = 7, R = 15
Output: 32
``````

Example 2:

``````Input: root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10
Output: 23
``````

Note:

1. The number of nodes in the tree is at most `10000`.
2. The final answer is guaranteed to be less than `2^31`.

``````class Solution {
public:
int rangeSumBST(TreeNode* root, int L, int R) {
int res = 0;
helper(root, L, R, res);
return res;
}
void helper(TreeNode* node, int L, int R, int& res) {
if (!node) return;
if (node->val >= L && node->val <= R) res += node->val;
helper(node->left, L, R, res);
helper(node->right, L, R, res);
}
};
``````

``````class Solution {
public:
int rangeSumBST(TreeNode* root, int L, int R) {
if (!root) return 0;
if (root->val < L) return rangeSumBST(root->right, L, R);
if (root->val > R) return rangeSumBST(root->left, L, R);
return root->val + rangeSumBST(root->left, L, R) + rangeSumBST(root->right, L, R);
}
};
``````

Github 同步地址:

https://github.com/grandyang/leetcode/issues/938

https://leetcode.com/problems/range-sum-of-bst/

https://leetcode.com/problems/range-sum-of-bst/discuss/205181/Java-4-lines-Beats-100

https://leetcode.com/problems/range-sum-of-bst/discuss/192019/JavaPython-3-3-similar-recursive-and-1-iterative-methods-w-comment-and-analysis.

 微信打赏 Venmo 打赏
（欢迎加入博主的知识星球，博主将及时答疑解惑，并分享刷题经验与总结，试运营期间前五十位可享受半价优惠～）

×

Help us with donation