给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。
例子:
输入:root = [10,5,15,3,7,null,18], low = 7, high = 15
输出:32
思路:很简单的搜索,一次遍历,dfs和bfs都可以,本题中作者使用的是dfs;
只要看懂题这道题就没有难度,意是是遍历整个二叉搜索树,对于每个val值,只要val在[low, high]这一区间内,则sum+=val;
代码:
class Solution {
public int rangeSumBST(TreeNode root, int low, int high) {
if(root == null) {
return 0;
}
if(root.val > high) {
return rangeSumBST(root.left, low, high);
}
else if(root.val < low) {
return rangeSumBST(root.right, low, high);
}
else {
return root.val + rangeSumBST(root.left, low, high) + rangeSumBST(root.right, low, high);
}
}
}