Sobes.tech
Junior — Middle

Hogyan határozható meg az utolsó elem előtt egy egyszerű láncolt listában?

sobes.tech MI

Válasz az MI-től

Egy egyszerű láncolt listában, hogy megtaláljuk az utolsó előtti elemet, végig kell menni a listán, és meg kell állni azon a csomóponton, amelynek a következő csomópontja az utolsó (azaz, ahol a Next mező a következő csomópontban null).

Példa C#-ban:

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

Node FindPenultimate(Node head) {
    if (head == null || head.Next == null) return null; // nincs előtte utolsó
    Node current = head;
    while (current.Next.Next != null) {
        current = current.Next;
    }
    return current;
}

Itt a ciklus addig folytatódik, amíg a következő csomópontnak is van egy következője, azaz el nem érjük az utolsó előtti elemet.