public void eliminar(int llave) {
	if (primer != null) {
		// Crear una lista temporario para trabajar
		Enlace lista = this.primer;
		// Guardar el listaEnlace previo
		Enlace previo = lista;
		// Solo busca mientras que i es menor que la cantidad de enlaces
		int i = 0;
		while (lista.getLlave() != llave && i < elementos) {
			// Buscar hasta la llave es encontraddo
			if (lista.getSiguente() != null) {
				// Buscar en el sigenute listaEnlace
				previo = lista;
				lista = lista.getSiguente();
			}
			i++
		}

		if (lista.getLlave != llave) {
			// No se encontró
			return;
		}

		// Se encontró
		if (lista == this.lista) {
			// Si es el primer listaEnlace, cambiarlo al siguente listaEnlace
			this.lista = this.lista.getSiguente();
		}
		else {
			// Sino cortar este listaEnlace de la lista
			previo.setSiguente(lista.getSiguente());
		}
		elementos--;
	}
}

final public class Enlace {
	private int llave;
	private Enlace siguente;

	public Enlace(Enlace siguiente, int llave) {
		this.siguente = siguente;
		this.llave = llave;
	}

	public int getLlave() {
		return llave;
	}

	public Enlace getSiguente() {
		return siguente;
	}

	public void setSiguente(Enlace siguente) {
		this.siguente = siguente;
	}
}