Skip to content

Commit e1f0edd

Browse files
committed
Adding Efficient Solution for Problem - 938 - Range Sum BST
1 parent c79d468 commit e1f0edd

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

Range_Sum_BST/EfficientSolution.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
##==================================
2+
## Leetcode
3+
## Student: Vandit Jyotindra Gajjar
4+
## Year: 2020
5+
## Problem: 938
6+
## Problem Name: Range Sum of BST
7+
##===================================
8+
#
9+
#Given the root node of a binary search tree, return the sum of values of all nodes with value between L and R (inclusive).
10+
11+
#The binary search tree is guaranteed to have unique values.
12+
#
13+
#Example 1:
14+
#
15+
#Input: root = [10,5,15,3,7,null,18], L = 7, R = 15
16+
#Output: 32
17+
#
18+
#Example 2:
19+
#
20+
#Input: root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10
21+
#Output: 23
22+
class Solution;
23+
def rangeSumBST(self, root, L, R):
24+
return self._rangeSumBST(root, L, R, 0) #Calling our helper method
25+
def _rangeSumBST(self, curr_node, L, R, Sum): #Defining our helper method
26+
if curr_node is None: #Condition-check: If curr_node is empty
27+
return Sum #We return Sum
28+
if L <= curr_node.val <= R: #Condition-check: If our curr_node.val is in the range of [L, R]
29+
Sum += curr_node.val #Sum is Sum + curr_node.val
30+
Sum = self._rangeSumBST(curr_node.left, L, R, Sum) #Calling helper method
31+
Sum = self._rangeSumBST(curr_node.right, L, R, Sum) #Calling helper method
32+
if curr_node.val < L: #Condition-check: if curr_node.val is less than L
33+
Sum = self._rangeSumBST(curr_node.right, L, R, Sum) #Calling helper method
34+
if curr_node.val > R: #Condition-check: if curr_node.val is greater than R
35+
Sum = self._rangeSumBST(curr_node.left, L, R, Sum) #Calling helper method
36+
return Sum #Return total Sum at the end.

0 commit comments

Comments
 (0)