Я получаю ошибку сегментации с моим кодом, и я не уверен, почему. Я пытаюсь найти максимальное значение в обычном двоичном дереве, которое не упорядочено.Функция двоичного дерева (не поиск) max
tnode<int> *maxT(tnode<int> *t)
{
if (t == NULL) return NULL;
tnode<int> *left = maxT(t->left);
tnode<int> *right = maxT(t->right);
if (left->nodeValue > right->nodeValue)
{
return maxT(left);
}
if (left->nodeValue < right->nodeValue)
{
return maxT(right);
}
}
Что делать, если либо 'left' или' 'right' является NULL'? –
Проверьте возвращаемое значение, если t равно NULL, если вы возвращаете NULL? –
BTW, если 'left-> nodeValue == right-> nodeValue', возвратного значения нет. – Jarod42