給定一個二叉搜索樹(BST)的根節點 root
,以及兩個整數 low
和 high
,請你計算樹中值位於區間 [low, high]
之間的所有節點的值的總和。
def rangeSumBST(root: TreeNode, low: int, high: int) -> int:
if not root:
return 0
if root.val < low:
return rangeSumBST(root.right, low, high) # 只遍歷右子樹
elif root.val > high:
return rangeSumBST(root.left, low, high) # 只遍歷左子樹
else:
# 如果節點的值在範圍內,累加節點值並遍歷左右子樹
return root.val + rangeSumBST(root.left, low, high) + rangeSumBST(root.right, low, high)