рекурсия — c ++ ищет узел в дереве

В моей программе я рекурсивно пытаюсь найти узел в дереве с заданной целью, но я не могу заставить его работать!

    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);

-3

Решение

Проблема здесь:

if(find_node(tmp->m_left, target))
{
return tmp;
}

Вы должны вернуть результат find_node там:

tmp = find_node(cur->m_left, target);
if (tmp) return tmp;
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]