Answer to Question 32C-5

int smallest(const ListCell* L)
{
  int       h = L->head;
  const ListCell* t = L->tail;

  if(t == NULL)
  {
    return h;
  }
  else
  {
    return min(h, smallest(t));
  }
}