Sobes.tech
Junior — Middle

Jak určit před posledním prvkem v jednoduše spojeném seznamu?

sobes.tech AI

Odpověď od AI

V jednoduchém spojovaném seznamu je třeba najít předposlední prvek, což znamená projít seznam a zastavit se na uzlu, jehož následující uzel je poslední (tedy pole Next následujícího uzlu je null).

Příklad v C#:

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

Node FindPenultimate(Node head) {
    if (head == null || head.Next == null) return null; // žádný předposlední
    Node current = head;
    while (current.Next.Next != null) {
        current = current.Next;
    }
    return current;
}

Cyklus pokračuje, dokud následující uzel má také následující uzel, tedy dokud nedojdeme k předposlednímu prvku.