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.