Вы должны прочитать хорошую книгу, которая объясняет структуры данных. Я постараюсь ответить на ваш запрос как можно лучше.
Node *lastnode=head;
for(;lastnode->next!=NULL;lastnode=lastnode->next){
}
lastnode->next=node;
Этот код захватывает головной узел через lastnode = head
. Затем он переходит список и читает конец. Он проверяет завершение, проверяя, lastnode -> next
равно нулю. Он перемещается к следующему узлу через lastnode = lastnode -> next
.
Поскольку ваша функция add
, кажется, добавляется, и у вас нет хвостового указателя, она должна обходить весь список каждый раз.
PS: обратите внимание на то, как вы форматируете код. Если вы не можете отформатировать его правильно, нет смысла тратить время на это поле.