Эти функции будут давать одинаковый вывод, и они оба правильны, но я хочу знать, что программно более подходит?Должно быть указано условие возврата или нет?
Код 1:
void inorder(node *t){
if(t==NULL)
return;
else{
inorder(t->left);
cout<<t->data<<" ";
inorder(t->right);
return;
}
}
Код 2:
void inorder(node *t){
if(t){
inorder(t->left);
cout<<t->data<<" ";
inorder(t->right);
}
}
Здесь узел является узлом двоичного дерева, имеющего структуру:
struct node{
int data;
node *left;
node *right;
};
Второй вариант лучше первого. Вы можете улучшить первое, сбросив 'else {' и соответствующие '}' и второй 'return'; это также будет приемлемым. –
Вы должны сравнить с 'nullptr', если вы должны сделать явное сравнение :) –