Я пишу код для работы с рекурсивной структурой, но некоторые работают не так, как я ожидаю.
/**
* 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