code: public T remove() {
          final Node<T> previous = iterator.currentNode.previous;
          final T element = remove(iterator.currentNode);
          iterator.currentNode = previous;
          return element;
      }
docs: Operation valid ONLY during iteration over the list using default, cached iterator ({@link #iterator()} method).
  
  @return value of the removed element.