euisblue
938. Range Sum of BST

C++

1class Solution { 2 public: 3 int rangeSumBST(TreeNode* root, int low, int high) { 4 if(!root) return 0; 5 6 int sum = 0; 7 if (root->val >= low && root->val <= high) sum = root->val; 8 if (root->val > low) sum += rangeSumBST(root->left, low, high); 9 if (root->val < high) sum += rangeSumBST(root->right, low, high); 10 11 return sum; 12 } 13};

JavaScript

1var rangeSumBST = function(root, low, high) { 2 if (!root) return 0; 3 let sum = 0; 4 if (root.val >= low && root.val <= high) sum = root.val; 5 6 return sum + rangeSumBST(root.left, low, high) + rangeSumBST(root.right, low, high); 7};

Ruby

1def range_sum_bst(root, low, high) 2 return 0 if root == nil 3 sum = 0 4 5 sum = root.val if (root.val >= low and root.val <= high) 6 sum += range_sum_bst(root.left, low, high) if root.val > low 7 sum += range_sum_bst(root.right, low, high) if root.val < high 8 9 sum 10end