#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int value;
struct Node *next;
} Node;
int main(void)
{
Node
*head
= malloc(sizeof(Node
)); Node
*second
= malloc(sizeof(Node
)); Node
*third
= malloc(sizeof(Node
));
head->value = 10;
head->next = second;
second->value = 20;
second->next = third;
third->value = 30;
third->next = NULL;
// Создаём новый узел
Node
*new_node
= malloc(sizeof(Node
)); new_node->value = 25;
// Вставляем его между second и third
new_node->next = second->next;
second->next = new_node;
// Проходим по списку
Node *current = head;
while (current != NULL) {
printf("%d\n", current
->value
); current = current->next;
}
// Освобождаем память
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IE5vZGUgewogICAgaW50IHZhbHVlOwogICAgc3RydWN0IE5vZGUgKm5leHQ7Cn0gTm9kZTsKCmludCBtYWluKHZvaWQpCnsKICAgIE5vZGUgKmhlYWQgPSBtYWxsb2Moc2l6ZW9mKE5vZGUpKTsKICAgIE5vZGUgKnNlY29uZCA9IG1hbGxvYyhzaXplb2YoTm9kZSkpOwogICAgTm9kZSAqdGhpcmQgPSBtYWxsb2Moc2l6ZW9mKE5vZGUpKTsKCiAgICBoZWFkLT52YWx1ZSA9IDEwOwogICAgaGVhZC0+bmV4dCA9IHNlY29uZDsKCiAgICBzZWNvbmQtPnZhbHVlID0gMjA7CiAgICBzZWNvbmQtPm5leHQgPSB0aGlyZDsKCiAgICB0aGlyZC0+dmFsdWUgPSAzMDsKICAgIHRoaXJkLT5uZXh0ID0gTlVMTDsKICAgIAogICAgCiAgICAvLyDQodC+0LfQtNCw0ZHQvCDQvdC+0LLRi9C5INGD0LfQtdC7CiAgICBOb2RlICpuZXdfbm9kZSA9IG1hbGxvYyhzaXplb2YoTm9kZSkpOwogICAgbmV3X25vZGUtPnZhbHVlID0gMjU7CiAgICAvLyDQktGB0YLQsNCy0LvRj9C10Lwg0LXQs9C+INC80LXQttC00YMgc2Vjb25kINC4IHRoaXJkCiAgICBuZXdfbm9kZS0+bmV4dCA9IHNlY29uZC0+bmV4dDsKICAgIHNlY29uZC0+bmV4dCA9IG5ld19ub2RlOwogICAgCgogICAgLy8g0J/RgNC+0YXQvtC00LjQvCDQv9C+INGB0L/QuNGB0LrRgwogICAgTm9kZSAqY3VycmVudCA9IGhlYWQ7CgogICAgd2hpbGUgKGN1cnJlbnQgIT0gTlVMTCkgewogICAgICAgIHByaW50ZigiJWRcbiIsIGN1cnJlbnQtPnZhbHVlKTsKICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+bmV4dDsKICAgIH0KCiAgICAvLyDQntGB0LLQvtCx0L7QttC00LDQtdC8INC/0LDQvNGP0YLRjAogICAgZnJlZSh0aGlyZCk7CiAgICBmcmVlKHNlY29uZCk7CiAgICBmcmVlKGhlYWQpOwoKICAgIHJldHVybiAwOwp9CgogCg==