我想为二叉搜索树编写搜索函数。我如何编写它,以便我可以从基本案例if(root.data == node.data){return node;}
返回而不会收到有关该方法不返回任何内容的编译器警告。在这种情况下,root是这些方法所属BST类的一部分。目标C中的二叉搜索树返回声明搜索函数
-(Node*)search:(Node*)node{
if(root == nil){
return node;
}
if(root.data == node.data){
return node;
}
if (node.data < root.data){
root = root.left;
[self search:root];
}
if (node.data > root.data) {
root = root.right;
[self search:root];
}
}
我不知道我能在这样一个return语句调用一个方法。谢谢。 – noobsmcgoobs
'return'采取任何有效的表达式。当然你也可以把'[self search:root];'的结果赋给一个变量,然后返回变量。 – rmaddy
但如果该方法返回一个对象(在本例中为节点),则每个if语句都必须返回一个对象?我不能只是回报;对于第一种情况? – noobsmcgoobs