题目:
给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。
算法:
func rangeSumBST(root *TreeNode, low int, high int) int {
ans := 0
var dfs func(node *TreeNode)
dfs = func(node *TreeNode) {
if node == nil {
return
}
if node.Val < low {
dfs(node.Right)
} else if node.Val > high {
dfs(node.Left)
} else {
ans = ans + node.Val
dfs(node.Left)
dfs(node.Right)
}
}
dfs(root)
return ans
}