Homework 5


Due : 11am, 15 July

Question 4.10 from the course text.

Use singly linked lists, with no dummy head node, and no current and tail pointers.

Solution

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)

Last updated : 16 July 1999 1:37am