难度: Medium
原题连接
内容描述
Given the root node of a binary search tree, return the sum of values of all nodes with value between L and R (inclusive).
The binary search tree is guaranteed to have unique values.
Example 1:
Input: root = [10,5,15,3,7,null,18], L = 7, R = 15
Output: 32
Example 2:
Input: root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10
Output: 23
Note:
The number of nodes in the tree is at most 10000.
The final answer is guaranteed to be less than 2^31.
思路 1 - 时间复杂度: O(N)- 空间复杂度: O(1)******
递归
beats 100%
class Solution:
def rangeSumBST(self, root, L, R):
"""
:type root: TreeNode
:type L: int
:type R: int
:rtype: int
"""
def helper(root, L, R):
if not root:
return 0
return helper(root.left, L, R) + helper(root.right, L, R) + (root.val if L <= root.val <= R else 0)
return helper(root, L, R)