我编写了用于递归结构的代码,但是有些工作没有我期望的那样。
/**
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func rangeSumBST(root *TreeNode, L int, R int) int {
var ret int = 0
for root := root; root != nil ; root = root.Left {
for root := root; root != nil ; root = root.Right {
if root.Val >= L && root.Val <= R && root.Val != 0{
ret += root.Val
}
}
}
return ret
}
我在哪里错了? 我在使用此数据的测试用例中有错误。
Input: [10,5,15,3,7,13,18,1,null,6]
L = 6
R = 10
My output: 17
Expected output: 23