Выбор ответа Junior Связные списки обновлено

Середина списка

Вопрос

Что вернёт функция для списка 1 → 2 → 3 → 4?

function middle(head) {
  let slow = head, fast = head;
  while (fast && fast.next) {
    slow = slow.next;
    fast = fast.next.next;
  }
  return slow;
}

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Узел 3. Шаги: slow=1, fast=1 → slow=2, fast=3 → slow=3, fast=null (после 4 идёт null).

Варианты ответа

  1. Узел 2
  2. Узел 4
  3. Узел 3правильный ответ
  4. null

Разбор

Шаги: slow=1, fast=1 → slow=2, fast=3 → slow=3, fast=null (после 4 идёт null). Цикл останавливается, возвращается узел 3: для чётной длины это вторая из двух середин.

  • Узел 2 вернёт вариант с условием fast.next && fast.next.next.
  • Узел 4 и null получаются только при ошибке в шагах.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.