Così funziona perfettamente se non ho due numeri minori vicini:
codice:
public boolean cancellaTuttiMinoriDopoVal(int val) {
    if ( first == null )
        return false; // oppure lanci un'eccezione..

    boolean flag = false;
    ListElem iterator = first;

    while(iterator.next != null) {
         if( iterator.dato == val ) {
             flag = true;}

         if( flag && iterator.next.dato < val ) {
             iterator.next=iterator.next.next;//così cancella però non due numeri consecutivi
        }
          iterator=iterator.next;
    }


    return flag;
}