Пример #1
0
 public T eliminar(T elemento) {
   NodoLista<T> actual = primero;
   if (elemento == null || longitud == 0) {
     return null;
   } else if (elemento.compareTo(actual.darElemento()) == 0) {
     primero = actual.darSiguiente();
     if (primero != null) {
       primero.cambiarAnterior(null);
     }
     longitud--;
     return elemento;
   } else {
     actual = actual.darSiguiente();
     while (actual != null) {
       if (elemento.compareTo(actual.darElemento()) == 0) {
         NodoLista<T> anterior = actual.darAnterior();
         NodoLista<T> siguiente = actual.darSiguiente();
         anterior.cambiarSiguiente(siguiente);
         if (siguiente != null) {
           siguiente.cambiarAnterior(anterior);
         }
         longitud--;
         return elemento;
       } else {
         actual = actual.darSiguiente();
       }
     }
   }
   return null;
 }