Swift中的树递归

问题描述

我正在查看一些递归树函数,但是对返回desactivar有点困惑,返回测试是什么条件?

||

解决方法

return语句使用左子树和右子树递归调用search函数。请注意,search返回一个Bool,指示树是否包含要搜索的值。

由于运算符|| 短路,只有在search未能在菜单中找到该项目时,才搜索右边的子树。左子树。当搜索左子树返回true时,search立即返回true而不搜索右子树。如果两个对search的递归调用都返回false,则搜索确实失败了,并且返回了false(即false || falsefalse)。

因此,该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节点是否为nildata等于searchValue。如果这些条件之一满足,则返回true。如果两者均为false,则结果为false