У меня есть функция, чтобы найти узел в BST своим строковым ключом, используя рекурсию. Я получаю предупреждение для второй функции: c4715 «не все пути управления возвращают значение». Я не могу понять, что именно путь не возвращает значение ..Какой путь не возвращает значение?
Вот мои функции:
TreeNode* Tree::findNodeByKey(const string &str) {
if (root == NULL) {
cout << "Tree is empty, nothing found" << endl;
return nullptr;
}
else {
return findNodeByKeyHelper(root, str);
}
}
TreeNode* Tree::findNodeByKeyHelper(TreeNode *node, const string &str) {
if (node->data == str) {
cout << "node is found" << endl;
return node;
}
else if (str < node->data) {
if (node->left == nullptr) {
cout << "element was not found" << endl;
return nullptr;
}
else {
findNodeByKeyHelper(node->left, str);
}
}
else if (str > node->data) {
if (node->right == nullptr) {
cout << "element was not found" << endl;
return nullptr;
}
else {
findNodeByKeyHelper(node->right, str);
}
}
}
Не все шаблоны в 'Tree :: findNodeByKeyHelper()' возвращают значение, очевидно. –
"* не все пути управления возвращают значение *". Найдите путь, который не заканчивается оператором 'return'. – juanchopanza
Я просто не понимаю, где я не возвращаю значение. В этом проблема, иначе я бы не стал задавать этот вопрос. – kekyc