938 二叉搜索树的范围和
问题描述:
给定二叉搜索树的根结点
root
,返回值位于范围
[low, high]
之间的所有结点的值的和。
示例1:
2021-4-27 力扣每日一题938 二叉搜索树的范围和
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLyMmaORzY65UMRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3QzN4UTNwMTM3IDNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.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);
}