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;
}
Εδώ, ο βρόχος συνεχίζεται όσο ο επόμενος κόμβος έχει και έναν επόμενο, δηλαδή μέχρι να φτάσουμε στο προτελευταίο στοιχείο.