题目

Given the root node of a binary search tree, return the sum of values of all nodes with a value in the range [low, high].

Example 1:

image.png

  1. Input: root = [10,5,15,3,7,null,18], low = 7, high = 15
  2. Output: 32

Example 2:

image.png

  1. Input: root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10
  2. Output: 23

Constraints:

  • The number of nodes in the tree is in the range [1, 2 * 10^4].
  • 1 <= Node.val <= 10^5
  • 1 <= low <= high <= 10^5
  • All Node.val are unique.

题意

求树中所有在指定范围内的值得和。

思路

DFS即可。


代码实现

Java

  1. class Solution {
  2. public int rangeSumBST(TreeNode root, int low, int high) {
  3. if (root == null) {
  4. return 0;
  5. }
  6. int sum = root.val >= low && root.val <= high ? root.val : 0;
  7. return sum + rangeSumBST(root.left, low, high) + rangeSumBST(root.right, low, high);
  8. }
  9. }