问题描述
我正在查看一些递归树函数,但是对返回desactivar
有点困惑,返回测试是什么条件?
||
解决方法
return语句使用左子树和右子树递归调用search
函数。请注意,search
返回一个Bool
,指示树是否包含要搜索的值。
由于或运算符||
短路,只有在search
未能在菜单中找到该项目时,才搜索右边的子树。左子树。当搜索左子树返回true
时,search
立即返回true
而不搜索右子树。如果两个对search
的递归调用都返回false
,则搜索确实失败了,并且返回了false
(即false || false
是false
)。
因此,该return语句正在执行以下操作:
if searchValue is in the left subtree {
return true
} else if the searchValue is in the right subtree {
return true
} else {
return false
}
,
正在检查left
OR(||
)right
节点是否为nil
或data
等于searchValue
。如果这些条件之一满足,则返回true
。如果两者均为false
,则结果为false
。