Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: recursion, base case, null, tree, linked list

Что возвращать в рекурсии при пустом узле?

Проверяет понимание базового случая (base case) в рекурсивных алгоритмах на деревьях и связанных списках.

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

В рекурсии при пустом узле (null) обычно возвращается null или пустое значение, в зависимости от задачи. Это базовый случай, который останавливает рекурсию. Например, при обходе дерева возвращается null, чтобы завершить ветвь. При подсчёте суммы возвращается 0. При поиске элемента возвращается null или false.

Длинный ответ

Что возвращать в рекурсии при пустом узле?

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

Общие правила

  • Если функция ищет элемент или проверяет условие, при null возвращается null или false.
  • Если функция вычисляет сумму, количество или другую агрегированную величину, при null возвращается нейтральный элемент (0 для суммы, 1 для произведения, пустой массив для сбора данных).
  • Если функция строит новую структуру данных, при null возвращается null или пустая структура.

Примеры

Поиск элемента в бинарном дереве поиска:

function searchBST(root, val) {
  if (root === null) return null; // базовый случай
  if (root.val === val) return root;
  if (val < root.val) return searchBST(root.left, val);
  return searchBST(root.right, val);
}

Подсчёт суммы всех узлов дерева:

function sumTree(root) {
  if (root === null) return 0; // нейтральный элемент для суммы
  return root.val + sumTree(root.left) + sumTree(root.right);
}

Сбор всех значений в массив (обход в глубину):

function collectValues(root) {
  if (root === null) return []; // пустой массив для конкатенации
  return [root.val, ...collectValues(root.left), ...collectValues(root.right)];
}

Вывод

Правильный выбор возвращаемого значения для пустого узла критичен для корректной работы рекурсии. Всегда определяйте, какое значение является нейтральным для вашей операции (null, 0, пустой массив, false), и используйте его в базовом случае. Это обеспечит правильное завершение рекурсии и корректный результат.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#recursion

#base case

#null

#tree

#linked list

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.