Sobes.tech
Junior — Middle

Kuidas määrata enne ühe ühendatud loendi viimast elementi?

sobes.tech AI

Vastus AI-lt

Üheksakselise ühendatud nimekirja puhul, et leida eelviimane element, tuleb list läbi käia ja peatuda sõlmel, mille järgmisel sõlmel on viimane (st. välja Next väli järgmisel sõlmel on null).

Näide C#-s:

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

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

Siin jätkub tsükkel nii kaua, kuni järgmisel sõlmel on ka järgnev sõlm, kuni jõuame eelviimase elemendini.