Sobes.tech
Back to questions
Junior — Middle
73

Как определить перед 마지막 элементом в односвязном списке?

Companies where asked
СБЕР ТехСБЕР Тех

Answer from AI

sobes.tech 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;
}

Здесь цикл продолжается, пока у следующего узла есть следующий, то есть пока не достигнем предпоследнего элемента.