void Reverse(struct node* p) { //exiting condition if (p->next == NULL) { HEAD = p; return; } Reverse(p->next); struct node* q; q = p->next; //This null is used to make last node point to NULL p->next = NULL; q->next = p; }