Lista simplesmente encadeada - ajuda

Olá pessoal, estou tentando implementar uma lista simplesmente encadeada! Vou postar os códigos por classes pra ficar mais fácil a compreensão! Estou com dificuldade para implementar os métodos de excluir o objeto (aerolito) por nome e PRINCIPALMENTE não estou conseguindo exibir minha lista de forma ordenada de acordo com a altura dos aerolitos!

Classe de Aerolito:

public String nome;
public double altura;
public double largura;
public double comprimento;

public Aerolito(String n, double a, double l, double c){
    this.nome = n;
    this.altura = a;
    this.largura = l;
    this.comprimento = c;
}

Classe de Nodo:

public Aerolito objeto;
public Nodo proximo;

public Nodo(Aerolito aerolito){
    this.objeto = aerolito;
    this.proximo = null;
}

E minha classe da Lista:

public Nodo primeiro;


public Lista() {
    this.primeiro = null;
}

/**
 * Método que adiciona um novo elemento na lista.
 */
public void adicionar(Aerolito a) {
    Nodo novo = new Nodo(a);
    if (this.primeiro == null) {
        this.primeiro = novo;
    } else {
        Nodo atual = this.primeiro;
        while (atual.proximo != null) {
            atual = atual.proximo;
        }
        atual.proximo = novo;

    }

}

/**
 * Método que remove da lista TODOS os aerolitos com o nome indicado.
 *
 * @param nome
 */
public void remover(String nome) {
    if (this.primeiro == null) {
        System.out.println("Lista vazia!");
    } else {
        Nodo atual = this.primeiro;
        while (atual != null) {
            if (atual.objeto.nome.equals(nome)) {

            }
            atual = atual.proximo;
        }
    }
}

/**
 * Método que retorna os aerolitos do menor para o maior.
 *
 * @return String lista de aerolitos que segue o seguinte formato:
 *
 * 1) cada aerolito será mostrado com seu nome entre colchetes, por exemplo:
 * [Aeroberto]
 *
 * 2) o String retornado terá todos os aerolitos sem qualquer separador, por
 * exemplo: [Aeroan][Aeroberto][Aerowski]
 *
 */
public String mostrar() {
    String aerolitos = "";
    if (this.isVazia()) {
        return aerolitos;
    } else {
        Nodo atual = this.primeiro;
        Nodo menor = ordenar(atual, atual.proximo);
        Nodo aux = atual;

        while (aux != null) {

            while (atual != null) {

                menor = ordenar(menor, atual);
                if (atual.proximo == null) {
                    break;
                }
                atual = atual.proximo;

            }

            aerolitos += "[" + menor.objeto.nome + "]";
            removeUm(menor);
            if (aux.proximo == null) {
                break;
            }
            aux = aux.proximo;
        }
    }
    return aerolitos;
}

public void removeUm(Nodo menor) {
    Nodo atual = this.primeiro;

    while (atual != null) {
        if (atual.proximo == null) {
            break;
        }
        if (atual.proximo.objeto.altura == menor.objeto.altura) {
            atual = menor.proximo;
            menor = null;
        }

        atual = atual.proximo;

    }
}

/**
 *
 * @return True caso a lista esteja vazia e false caso ocorra o contrario
 */
public boolean isVazia() {
    if (this.primeiro == null) {
        return true;
    } else {
        return false;
    }
}

private Nodo ordenar(Nodo pri, Nodo seg) {
    if (pri.objeto.altura < seg.objeto.altura) {
        return pri;
    }
    return seg;
}

public static void main(String[] args) {
    Lista sla = new Lista();
    Aerolito a1 = new Aerolito("a1", 2.5, 2.2, 2.2);
    Aerolito a2 = new Aerolito("a2", 2.2, 2.2, 2.2);
    Aerolito a3 = new Aerolito("a3", 2.3, 2.2, 2.2);
    Aerolito a4 = new Aerolito("a4", 2.4, 2.2, 2.2);
    Aerolito a5 = new Aerolito("a5", 2.1, 2.2, 2.2);

    sla.adicionar(a1);
    sla.adicionar(a2);
    sla.adicionar(a3);
    sla.adicionar(a4);
    sla.adicionar(a5);

    System.out.println(sla.mostrar());
}

Lembrando que o método de remover, eu devo remover todos os elementos que contenham nome igual ao passado por parametro e o método de mostrar eu tenho que mostrar o nome de todos aerolitos da lista (ordenados por altura)… ISSO ME BUGOU A MENTE DEMAIS!!

up