938 二叉搜索树的范围和
问题描述:
给定二叉搜索树的根结点 root
,返回值位于范围 [low, high]
之间的所有结点的值的和。
示例1:![](https://i-blog.csdnimg.cn/blog_migrate/102679e13450603c4739a67043b07667.png)
输入:root = [10,5,15,3,7,null,18], low = 7, high = 15
输出:32
示例2:
输入:root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10
输出:23
思路:
今天的题没啥好写的,一个遍历即可。深搜,广搜都可,这里使用深搜。
Java代码:
/**
* @Description: 力扣938题题解
* @return: 返回结果
* @Author: Mr.Gao
* @Date: 2021/4/27
*/
int low;
int hight;
public int rangeSumBST(TreeNode root, int low, int high) {
this.low = low;
this.hight = high;
return dfs(root);
}
public int dfs(TreeNode root){
int re = 0;
if(root==null){
return 0;
}else if(root.val<=this.hight&&root.val>=this.low){
re+=root.val;
}
return re+dfs(root.left)+dfs(root.right);
}