938. Range Sum of BST
LeetCode 938. Range Sum of BST
Description
Given the root node of a binary search tree, return the sum of values of all nodes with a value in the range[low, high].
Example 1:

Input: root = [10,5,15,3,7,null,18], low = 7, high = 15
Output: 32Example 2:

Input: root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10
Output: 23Constraints:
The number of nodes in the tree is in the range
[1, 2 * 10^4].1 <= Node.val <= 10^51 <= low <= high <= 10^5All
Node.valare unique.
Tags
Tree, Depth-first Search, Recursion
Solution
In-order traverse and sum up all node values in the given range.
Complexity
Time complexity:
Space complexity:
Code
func rangeSumBST(root *TreeNode, low int, high int) int {
var ans int
var stack []*TreeNode
for len(stack) > 0 || root != nil {
for root != nil {
stack = append(stack, root)
root = root.Left
}
root = stack[len(stack)-1]
stack = stack[:len(stack)-1]
if root.Val > high {
break
} else if root.Val >= low {
ans += root.Val
}
root = root.Right
}
return ans
}Last updated
Was this helpful?