Я не хочу использовать двойной указатель в моем коде, пожалуйста, примите индекс первого узла равным 1. У меня есть связанный список 10-> 20-> 30-> 40-> 50-> 60-> 70- > 80-> 90-> 100-> NULL В другом связанном списке, указателем заголовка которого является pLink, я хочу скопировать нечетные индексированные узлы и получить вывод в виде 10-> 30-> 50-> 70-> 90-> NULL.
SLLI*OddNodes(SLLI*pHead)
{
int counter =1;
SLLI*pTemp=pHead;
SLLI*pList=NULL;
while(pTemp != NULL)
{
if(counter % 2 != 0)
{
if(pList==NULL)
{
pList=malloc(sizeof(SLLI));
pList->data=pTemp->data;
pList->next=NULL;
}
else
{
SLLI*pIter=pList;
SLLI*pNew=malloc(sizeof(SLLI));
pNew->data=pTemp->data;
pNew->next=NULL;
pIter->next=pNew;
pIter=pIter->next;
}
}
pTemp=pTemp->next;
counter ++;
}
return pList;
}
Когда я запускаю этот код, я получаю вывод как 10-> 90-> NULL. Я знаю, что у меня проблема с частью "else". SLLI * pIter = pList не имеет никакого смысла, но что я могу сделать для устранения этой ошибки?