Sobes.tech
Junior — Middle

Jak określić przed ostatnim elementem na liście jednokierunkowej?

sobes.tech AI

Odpowiedź od AI

W jednokierunkowej liście powiązanej, aby znaleźć element przed ostatnim, należy przejść przez listę i zatrzymać się na węźle, którego następny węzeł jest ostatni (czyli pole Next następnego węzła jest równe null).

Przykład w C#:

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

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

Tutaj pętla trwa, dopóki następny węzeł ma kolejny węzeł, czyli dopóki nie dotrzemy do elementu przedostatniego.