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.