Sobes.tech
Junior — Middle

Πώς να προσδιορίσετε πριν από το τελευταίο στοιχείο σε μια απλή συνδεδεμένη λίστα;

sobes.tech AI

Απάντηση από AI

Σε μια απλή συνδεδεμένη λίστα, για να βρείτε το στοιχείο πριν από το τελευταίο, πρέπει να διασχίσετε τη λίστα και να σταματήσετε στον κόμβο του οποίου ο επόμενος κόμβος είναι ο τελευταίος (δηλαδή, το πεδίο Next του επόμενου κόμβου είναι null).

Παράδειγμα σε C#:

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

Node FindPenultimate(Node head) {
    if (head == null || head.Next == null) return null; // δεν υπάρχει προτελευταίο
    Node current = head;
    while (current.Next.Next != null) {
        current = current.Next;
    }
    return current;
}

Εδώ, ο βρόχος συνεχίζεται όσο ο επόμενος κόμβος έχει και έναν επόμενο, δηλαδή μέχρι να φτάσουμε στο προτελευταίο στοιχείο.