Python || 97.84% Faster || Explained Line by Line || Recursive Solution
\nclass Solution:\n    def rangeSumBST(self, root: Optional[TreeNode], low: int, high: int) -> int:\n\t    s = 0 # answer is zero initially\n\t    if root: # if
```\nclass Solution:\n    def rangeSumBST(self, root: Optional[TreeNode], low: int, high: int) -> int:\n\t    s = 0 # answer is zero initially\n\t    if root: # if we have a root\n\t\t    if low <= root.val <= high: # if in the right range\n\t\t\t    s += root.val \n            # if the root is in the range [low, high]\n\t\t    if low <= root.val: \n\t\t\t    s += self.rangeSumBST(root.left,low,high) # add nodes to the left sub tree\n\t\t    if root.val <= high: \n\t\t\t    s += self.rangeSumBST(root.right,low,high) # add nodes to the right sub tree\n\t    return s\n```\n\n**An upvote will be encouraging**
['Binary Search Tree', 'Recursion', 'Binary Tree', 'Python', 'Python3']