我有一个简单的问题。我正在实现一个通用的二叉搜索树。
我的功能是:
template<class T>
T TreeSet<T>::minHelper(TreeNode<T>* rootNode) const {
if (rootNode->left != nullptr)
minHelper(rootNode->left);
else
return rootNode->data;
}
这是一个递归函数。我不能在if路径中放置一个return语句,但是我不知道如何在最后返回一个可以解决该问题的假人。有什么想法吗?
答案 0 :(得分:1)
如果您只是在return
路径中的语句之前添加if
,我认为您的功能将按预期运行。一旦递归结束(函数进入else
路径),返回的任何T
对象将向上传播递归调用的函数。完全如此:
template<class T>
T TreeSet<T>::minHelper(TreeNode<T>* rootNode) const {
if (rootNode->left != nullptr)
return minHelper(rootNode->left);
else
return rootNode->data;
}