「每日LeetCode」2021年6月16日

本文最后更新于:2023年3月19日 晚上

Lt938. 二叉搜索树的范围和

938. 二叉搜索树的范围和

给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。
示例 1:

1
2
输入:root = [10,5,15,3,7,null,18], low = 7, high = 15
输出:32

示例 2:

1
2
输入:root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10
输出:23

提示:

  • 树中节点数目在范围 [1, 2 * 10]
  • 1 <= Node.val <= 10
  • 1 <= low <= high <= 10
  • 所有 Node.val 互不相同

思路

遍历时,判断节点的值是不是在范围内,是的话累加即可。

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @param {number} L
* @param {number} R
* @return {number}
*/
var rangeSumBST = function (root, L, R) {
let res = 0;
const visit = (node) => {
if (!node) return;
visit(node.left);
if (node.val >= L && node.val <= R) res += node.val;
visit(node.right);
};
visit(root);
return res;
};