938. 二叉搜索树的范围和
给定二叉搜索树的根结点 root
,返回 L
和 R
(含)之间的所有结点的值的和。
二叉搜索树保证具有唯一的值。
输入:root = [10,5,15,3,7,null,18], L = 7, R = 15 输出:32
输入:root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10 输出:23
提示:
- 树中的结点数量最多为
10000
个。 - 最终的答案保证小于
2^31
。
求搜索树中大于L,小于R的结点之和,利用深搜或广搜对树中的结点进行遍历;
public int rangeSumBST(TreeNode root, int L, int R) {
Queue<TreeNode>queue = new LinkedList<TreeNode>();
queue.offer(root);
int sum = 0;
while(!queue.isEmpty()){
int size = queue.size();
while(size > 0){
TreeNode node = queue.poll();
if(node.val >= L &&node.val <= R)
sum += node.val;
if(node.left != null)
queue.offer(node.left);
if(node.right != null)
queue.offer(node.right);
size--;
}
}
return sum;
}