Dúvida em exercício de Lista Encadeada (Ponteiros)

pessoas, não sei como resolver esse exercício, pois não sei manipular lista encadeada direito. se alguém puder me ajudar num exercício eu agradeço.

//(Ponteiros) Supondo as declarações:

public class ListaPessoas {

    public String nome;
    public int idade;
    public double peso;
    public int altura;
    public ListaPessoas proxs;

    public ListaPessoas(String n, int i, double p, int a, ListaPessoas ps) {
        nome = n;
        idade = i;
        peso = p;
        altura = a;
        proxs = ps;
    }

}

public static void ordena(ListaPessoas lis, int comoComparar) {
        /* 
        Função que ordena CRESCENTEMENTE o conteúdo da lista lis, considerando: o atributo
        nome quando o parâmetro comoComparar = 1, idade quando comoComparar = 2, peso quando
        comoComparar = 3, e considerando o atributo altura quando comoComparar = 4.
        */
}

no caso eu tenho q implementar esse método ordena. se alguém me ensinasse ao menos em um dos casos (ex.: comoComparar = 1) já ajudaria bastante. minha dúvida não é nem com respeito a comparação, mas como ordenar uma lista encadeada. com vetor eu faço tranquilo, mas encadeamento é um pouco diferente né.

Olá,
Primeiro se atende ao fato de que a classe “ListaPessoas” que vc criou não representa uma estrutura de lista e sim, um objeto desta classe representa somente UMA pessoa.
Se entendei bem, renomeie esta classe para “Pessoa” e depois crie um ArrayList com vários objetos de Pessoa, ai podes partir para ordenação implementando um Comparator.

então, mas no caso não posso usar ArrayList. seria pra implementar uma lista simplesmente encadeada com cada elemento contendo 4 infos (nome, idade, peso, atura) e apontando para UM próximo. no caso o q eu poderia fazer é criar um No…

public class No {

    public ListaPessoas info;
    public No proxs;

    public No(ListaPessoas ps) {
        info = ps;
        prox = null;
}

mas eu não saberia implementar o resto. não estou conseguindo incluir pessoas na lista.

pra inserir eu fiz assim na classe ListaPessoas…

public boolean insere(No no) {
        if (vazia()) {
            primeiro = no;
        } else {
            no.proxs = primeiro;
            primeiro = no;
        }
        qtdPessoas++;
        return true;
}