Sobes.tech
Junior — Middle

Ako určiť pred posledným prvkom v jednoduchej spájanej liste?

sobes.tech AI

Odpoveď od AI

V jednoduchej spájanej zozname, ak chcete nájsť predposledný prvok, musíte prejsť zoznam a zastaviť sa na uzle, ktorého nasledujúci uzol je posledný (t.j. pole Next nasledujúceho uzla je null).

Príklad v C#:

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

Node FindPenultimate(Node head) {
    if (head == null || head.Next == null) return null; // žiadny predposledný
    Node current = head;
    while (current.Next.Next != null) {
        current = current.Next;
    }
    return current;
}

Tu cyklus pokračuje, kým nasledujúci uzol má tiež nasledujúci uzol, teda kým nedosiahne predposledný prvok.