我是新來遞歸,我不明白爲什麼這個函數不會編譯。它顯然缺少一個返回聲明。從測試看來,似乎我的回報聲明不會返回?遞歸函數丟失返回語句
// recursive search method
public BinaryTree<T> recursiveSearch(BinaryTree<T> t, T key) {
if (key.compareTo(t.getData()) < 0) {
if (t.getLeft() != null) {
recursiveSearch(t.getLeft(), key);
} else {
return null;
}
} else if (key.compareTo(t.getData()) > 0) {
if (t.getRight() != null) {
recursiveSearch(t.getRight(), key);
} else {
return null;
}
} else if (key.compareTo(t.getData()) == 0) { // key is found
return t;
} else { // not in binary tree
return null;
}
}
您需要調用返回你的函數返回'recursiveSearch(t.getRight()鍵);'。 – dguay