Iterative version
void reverse() { if(head == NULL) return; list *first = NULL; list *second = head; list *third = second->next; while(third!=NULL) { second->next=first; first = second; second = third; third = third->next; } second->next = first; head=second; }Recursive version
void rReverse(list *n) { if (n == NULL) return; if(n->next ==NULL) { head = n; return ; } rReverse(n->next); n->next = n; }