void addNewNode (struct node *head, int n)
{
struct node* temp = (struct node*) malloc(sizeof(struct node));
temp -> data = n;
temp -> link = head;
head = temp;
}
Приведенный выше код является популярной ошибочной версией функции для добавления нового узла в начало связанного списка.
Как правило, правильные версии, как,
void addNewNode (struct node **head, int n);
void addNewNode (struct node * &head, int n);
Я разработал еще одну, но простую функцию, которая отлично работала.
struct node* addNewNode (struct node *head, int n)
{
struct node* temp = (struct node*) malloc(sizeof(struct node));
temp -> data = n;
temp -> link = head;
return temp;
}
Но я не видел, чтобы это использовалось или обсуждалось в коде и руководствах, и поэтому мне любопытно узнать, есть ли у этого подхода какой-то недостаток.