链接: 938. 二叉搜索树的范围和

class Solution:
def rangeSumBST(self, root: TreeNode, low: int, high: int) -> int:
if not root:
return 0
if root.val<low:
return self.rangeSumBST(root.right,low,high)
if root.val > high:
return self.rangeSumBST(root.left,low,high)
return root.val + self.rangeSumBST(root.right,low,high) + self.rangeSumBST(root.left,low,high)
链接: 剑指 Offer II 054. 所有大于等于节点的值之和

class Solution:
def convertBST(self, root: TreeNode) -> TreeNode:
s = 0
def dfs(root):
if not root:
return
nonlocal s
dfs(root.right)
s += root.val
root.val = s
dfs(root.left)
dfs(root)
return root
同上题。
同上题。