public boolean tryAdvance(Consumer<? super V> action) {
          if (action == null) throw new NullPointerException();
          Node<V> p;
        if ((p = advance()) == null) {
          return false;
        }
          action.accept(p.val);
          return true;
      }
public boolean tryAdvance(Consumer<? super V> action)