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

В односвязном списке, чтобы найти элемент перед последним, нужно пройтись по списку и остановиться на узле, чей следующий узел является последним (то есть у следующего узла поле Next равно null).

Короткий ответ

Что ответить на собеседовании

В односвязном списке, чтобы найти элемент перед последним, нужно пройтись по списку и остановиться на узле, чей следующий узел является последним (то есть у следующего узла поле Next равно null).

Подробный разбор

Ответ с пояснениями

В односвязном списке, чтобы найти элемент перед последним, нужно пройтись по списку и остановиться на узле, чей следующий узел является последним (то есть у следующего узла поле 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;
}

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку