Recursion 递归,而不是通过return语句结束递归

Recursion 递归,而不是通过return语句结束递归,recursion,go,Recursion,Go,我正在这棵树中进行二元搜索,并期望在结果为真时Find递归结束。它的结果确实为true,但即使它获得了true值并运行return语句,它似乎仍在继续运行,并最终达到值false 当程序找到值并返回时,如何结束该程序 您似乎忽略了树的返回值。当您递归到该树时,请查找它。如果传递返回值,则应获得所需的行为。也就是说,将Find的结尾修改为: if val < T.Value { return T.Left.Find(val) } else { return T.Right.

我正在这棵树中进行二元搜索,并期望在结果为真时Find递归结束。它的结果确实为true,但即使它获得了true值并运行return语句,它似乎仍在继续运行,并最终达到值
false

当程序找到值并返回时,如何结束该程序


您似乎忽略了
树的返回值。当您递归到该树时,请查找它。如果传递返回值,则应获得所需的行为。也就是说,将
Find
的结尾修改为:

if val < T.Value {
    return T.Left.Find(val)
} else {
    return T.Right.Find(val)
}
如果值
您似乎忽略了
树的返回值。当您递归到树中时,请查找
。如果传递返回值,则应获得所需的行为。也就是说,将
Find
的结尾修改为:

if val < T.Value {
    return T.Left.Find(val)
} else {
    return T.Right.Find(val)
}
如果值
非常感谢!我对类似的函数Insert感到困惑。非常感谢JamesThanks!我对类似的函数Insert感到困惑。谢谢你,詹姆斯
if val < T.Value {
    return T.Left.Find(val)
} else {
    return T.Right.Find(val)
}