На первой итерации
for (int count=0;count<1;count++)
newList.head=newList.head->next;
... newList.head
равно NULL
... поэтому использование newList.head->next
- плохая идея.
Я бы рекомендовалчто вы перебираете текущий список довольно обычно (то есть current = head; while(current) ...
), увеличиваете счетчик в цикле, чтобы отслеживать текущую позицию в списке, и всякий раз, когда счетчик цикла равен четному или 0 (counter % 2 == 0
или (counter & 1) == 0
), используйтестандартная функция добавления списка в новый список для добавления нового узла.