В моей программе я рекурсивно пытаюсь найти узел в дереве с заданной целью, но я не могу заставить его работать!
Stree::Node * Stree::find_node(Node* cur, string target)
{
Node *tmp = cur;;
if(cur == NULL || tmp == NULL)
return NULL;
if(cur->m_city == target || tmp->m_city == target)
return cur;
if(find_node(tmp->m_left, target))
{
return tmp;
}
else return find_node(cur->m_right, target);
Проблема здесь:
if(find_node(tmp->m_left, target))
{
return tmp;
}
Вы должны вернуть результат find_node
там:
tmp = find_node(cur->m_left, target);
if (tmp) return tmp;
Других решений пока нет …