Sto studiando le liste concatenate (o linked List, o liste linkate) in java e sto cercando un metodo per cancellare la coda di una lista.
Quale dei due metodi, secondo voi, è più efficiente? O sono di eguale efficienza?
Primo metodo:
codice:
public void deleteTail(){
        if(isEmpty())
            return;
        if(this.head.getNext() == null){
            this.head = null;
            return;
        }
        Nodo aux = this.head;
        for(;aux.getNext().getNext() != null; aux = aux.getNext());
        aux.setNext(null);
    }
Secondo metodo:
codice:
public void deleteTail(){
       if (isEmpty())
        return;
    Nodo aux = head;
    Nodo prev = null;
    for( ; aux.getNext() != null; prev = aux, aux = aux.getNext());
    if(prev == null)
        head = null;
    else
        prev.setNext(null);
    }
Ovviamente head è la testa della lista;
getNext() mi restituisce il nodo successivo;
setNext(Nodo n) mi setta il successivo.
isEmpty mi dice se la lista è vuota o meno.
Il primo metodo l'ho scritto io, il secondo lo propone le slide su cui sto studiando ed in entrambi i casi funzionano, ho fatto delle prove con 0 elementi, 1, 2, 3 e n elementi generati casualmente.

Grazie in anticipo