Sobes.tech
Junior — Middle

Come determinare prima dell'ultimo elemento in una lista collegata semplice?

sobes.tech AI

Risposta dell'AI

In una lista collegata semplice, per trovare l'elemento prima dell'ultimo, bisogna attraversare la lista e fermarsi sul nodo il cui nodo successivo è l'ultimo (cioè, il campo Next del nodo successivo è null).

Esempio in C#:

class Node {
    public int Value;
    public Node Next;
}

Node FindPenultimate(Node head) {
    if (head == null || head.Next == null) return null; // nessun penultimo
    Node current = head;
    while (current.Next.Next != null) {
        current = current.Next;
    }
    return current;
}

Qui, il ciclo continua finché il nodo successivo ha a sua volta un nodo successivo, cioè fino a raggiungere l'elemento penultimo.