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; }