给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。
示例 1:
输入:root = [10,5,15,3,7,null,18], low = 7, high = 15
输出:32
中序遍历,求和的时候做一个小判断
class Solution:
def rangeSumBST(self, root: TreeNode, low: int, high: int) -> int:
sum_result = 0
stack = []
while(len(stack)>0 or root!=None):
if root != None:
stack.append(root)
root = root.left
else:
root = stack.pop(-1)
if root.val >= low and root.val <= high:
sum_result += root.val
elif root.val > high:
break
root = root.right
return sum_result