мне подсказали что можно как-то так, но тут запутанно, не совсем пойму:
struct Node{
int value;
Node* next;
Node* prev;
};
void insert(Node*n, int val)
{
Node*a = new Node;
n->next = a;
a->next = n->next;
a->value = val;
n->value = a->value;
}
Тогда уж так:
void insert(Node*n, int val)
{
Node*a = new Node;
a->value = val;
a->next = n->next;
n->next = a;
a->prev = n; // Не нужно для односвязного списка
if (a->next) a->next->prev = a; // Не нужно для односвязного списка
}
Т.е. вы просто вставляете после n новый узел, обновляя соответствующим образом поля n и a. n теперь указывает на a, а a - куда раньше указывал n.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей