Odwracanie pojedynczo połączonej listy w C [duplikat]

Możliwy duplikat:
Jak odwrócić pojedynczo połączoną listę używając tylko dwóch wskaźników?

To jest kod C, aby odwrócić połączoną listę. Ale to nie daje pożądanego rezultatu.

struct node *temp,*prev;
while(head->next!=NULL)
  {
    temp=prev=head;
    while(temp->next->next!=NULL)
      {
    temp=temp->next;
    prev=prev->next;
      }
    temp=temp->next;
    temp->next=prev;
    prev->next=NULL;
  }

czego mi brakuje?

questionAnswers(2)

yourAnswerToTheQuestion