Я работал с двусвязным списком. Все работает хорошо, за исключением функции, которая должна добавить копию 'who' перед 'whereX' [см. Код ниже]. Почему функция не работает?
void addNodeAt(Node *whereX, Node *who)
{
//copy
Node *temp = (Node*)malloc(sizeof(Node));
temp->count = who->count;
strcpy(temp->word,who->word);
temp->before = whereX->before;
temp->after = whereX;
//paste
if(whereX->after == who)
whereX->after = who->after;
whereX->before = temp;
}
EDIT:
В ответ пользователю326404, который сказал:
'Примечание. Ваша функция имеет недостаток, который не позволяет ей вставлять who в качестве нового заголовка списка. Он будет вставлен, но вы никогда не вернете новый головной узел, поэтому список будет утерян. '
что делать, если у меня есть Node * head в качестве глобальной переменной. Как я могу переназначить голову, не возвращая ее?