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.