Junior — Middle
Hogyan határozható meg az utolsó elem előtt egy egyszerű láncolt listában?
sobes.tech MI
Válasz az MI-től
Egy egyszerű láncolt listában, hogy megtaláljuk az utolsó előtti elemet, végig kell menni a listán, és meg kell állni azon a csomóponton, amelynek a következő csomópontja az utolsó (azaz, ahol a Next mező a következő csomópontban null).
Példa C#-ban:
class Node {
public int Value;
public Node Next;
}
Node FindPenultimate(Node head) {
if (head == null || head.Next == null) return null; // nincs előtte utolsó
Node current = head;
while (current.Next.Next != null) {
current = current.Next;
}
return current;
}
Itt a ciklus addig folytatódik, amíg a következő csomópontnak is van egy következője, azaz el nem érjük az utolsó előtti elemet.