Question 4.10 from the course text.
Use singly linked lists, with no dummy head node, and no current and tail pointers.
void reverse ( Node *before, Node *first )
{
if (first != NULL)
{
reverse (first, first->Next);
first->Next = before;
}
else
Head = before;
}
Called by : reverse (NULL, Head)
If you are using a dummy node, you could use the following revised version:
void reverse ( Node *before, Node *first )
{
if (first != NULL)
{
reverse (first, first->Next);
first->Next = before;
}
else
Head->Next = before;
}
Called by : reverse (NULL, Head->Next)