재귀를 사용하여 문자열 키로 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()의 모든 pates가 값을 분명히 반환하는 것은 아닙니다. –
"* 모든 제어 경로가 값 *을 반환하지는 않습니다." 'return' 문에서 끝나지 않는 경로를 찾으십시오. – juanchopanza
값을 반환하지 않는 부분을 이해할 수 없습니다. 그게 문제입니다. 그렇지 않으면이 질문을하지 않을 것입니다. – kekyc