Я пытаюсь написать рекурсивную функцию для произвольного двоичного дерева, которое принимает значение и листовой узел, и проверяет, имеет ли этот листовой узел это значение. Это примерно то, что у меня есть сейчас.Проверка узла дерева равным значению
bool tree_eq(value, N* node){
if (node == nullptr){
return false;
}
else{
if node->value == value{
return true;
}
else{
return tree_eq(value, N->left);
return tree_eq(value, N->right);
}
Я знаю, что не могу вернуть две вещи, и это та часть, которую я пытаюсь решить. Как я рекурсивно проверяю правую и левую стороны, если задан корень, а не лист? Спасибо
Что делать, если данный узел является корнем, поэтому мне нужно идти влево и вправо? – Steven
Вы всегда будете идти влево и вправо, пока не найдете значение. Однако, если что-то возвращает true, все работает нормально. – MichaelCMS
Я не вижу, как || что обе стороны проверяются. Если я начинаю с корня, а его 2 листа не равен значению, он будет случайным образом проверять правильное или левое, но не то и другое. Это то, что я получаю от || – Steven