2
respostas

Estou com bastante dúvida sobre como fazer essa lista

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Obs: no caso, eu queria saber como ficaria a união fazendo uma terceira lista, sem repetir oq for igual

2 respostas

Obs: no caso, eu queria saber como ficaria a união fazendo uma terceira lista, sem repetir oq for igual

Como vai Wallison. Tudo bem? Pelo que entendi o exercício proposto seria algo como o addAll() do LinkedList do Java correto?

Imaginei o seguinte:

Se temos dentro de um node como especificar quem é o próximo elemento, na primeira lista o último elemento terá seu proximo item como null.

Logo podemos adicionar o próximo elemento do último elemento da lista 1 como o primeiro elemento da lista 2 aqui já criamos a ligação. Agora falta ajustar os demais parâmetros de uma lista ligada como o último item e tamanho total da lista.

Desculpe não usei nomes muito edequados e não coloquei os detalhes da classe, a intenção é criar um exemplo rápido.

void unirListas(Lista1 lista1, Lista2 lista2){

    //Ultimo elemento da lista 1
    Node ultimoElementoLista1 = lista1.getUltimoElemento();

    //Primeiro elememento da lista 2
    Node primeiroElementoLista2 =  lista2.getPrimeiroElemento();

    // Unindo o último elemento da lista 1 com o primeiro da lista 2. 
    ultimoElementoLista1.setProximoElemento(primeiroElementoLista2);

    //soma-se o tatal de itens. 
    this.elementos = this.elementos + lista2.size();

    this.ultimoItem = lista2.get(lista2.size() -1);

}