Какое знаешь главное условие рекурсии

«Какое знаешь главное условие рекурсии» — вопрос из категории Алгоритмы, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Рекурсия требует базового случая (условия выхода), чтобы избежать бесконечного цикла. Без него функция будет вызывать саму себя до переполнения стека.

Пример с факториалом:

function factorial(n) {
  if (n === 0) { // базовый случай
    return 1;
  }
  return n * factorial(n - 1); // рекурсивный вызов
}

Ключевые моменты:

  1. Должно быть условие прекращения рекурсии
  2. Каждый вызов должен приближать к базовому случаю
  3. Рекурсия использует стек вызовов, что может привести к его переполнению при глубокой вложенности