ClosedList.Iterator: remove()
Defined to remove the value just produced by next().
 public void remove()
    {
    if( previous == null )
      {
      head = head.getNext();
      }
    else
      {
      previous.setData(current.getData());  // reuse
      previous.setNext(current.getNext());  // previous
      current = previous;               // lose current
      }
    }

head is defined
in outer class!