用于递归结构的错误代码

时间:2019-07-01 18:51:59

标签: go

我编写了用于递归结构的代码,但是有些工作没有我期望的那样。

/**
 * 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

0 个答案:

没有答案