Sobes.tech
Junior — Middle

Как да определите пред последния елемент в едносвързан списък?

sobes.tech AI

Отговор от AI

В еднопосочен списък, за да намерите елемента преди последния, трябва да преминете през списъка и да спрете на възела, чийто следващ възел е последният (т.е. полето Next на следващия възел е null).

Пример на C#:

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

Node FindPenultimate(Node head) {
    if (head == null || head.Next == null) return null; // няма предпоследен
    Node current = head;
    while (current.Next.Next != null) {
        current = current.Next;
    }
    return current;
}

Цикълът продължава, докато следващият възел има и следващ възел, т.е. докато не достигнем предпоследния елемент.