Я хотел бы добавить узел в отсортированный связанный список по номеру.Это структура:
struct node {
int number;
struct node *next;
}
Я могу правильно добавить в отсортированный связанный список, но не могу изменить заголовок.
К сожалению, я не могу изменить форматобъявление функции, так что это моя функция:
int create(struct node *head, int number) {
struct node *newNode = malloc(sizeof(struct node));
newNode->number = number;
struct node *current = head;
if (current->number == -1) {
newNode->next = NULL;
*head= *newNode;
return 1;
}
//Checking if head's number is bigger than init
if (current->number > number) {
newNode->next = current;
*head = *newNode;
} else {
while(current->next != NULL && (current->number <= number)) {
current = current->next;
}
newNode->next = current->next;
current->next = newNode;
}
return 1;
}
вызов функции (Примечание, я также не могу изменить это):
struct node *list;
list = initializeList();
int num;
num = create(list, 5);
num = create(list, 1);
После второго вызова,список должен быть 1-> 5.Но он становится 1-> 1-> 1-> 1 -> .....
Редактировать: список кодов для инициализации:
struct node * initializeList() {
struct node *head;
head = malloc(sizeof(struct node));
head->next = NULL;
head->number = -1;
return head;
}