---------------------here is the program -------------------------- struct list * reverse_ll( struct list * head, struct list * prev) { struct list * temp = NULL; if ( head == NULL ) return prev; temp = reverse_ll ( head -> next , head ); head -> next = prev; return temp; } -------------- use this function like followwing ----------------- int main() { ... head = reverse_ll(head , NULL); ... }