Сама рекурсия требует только стека. Для реализации рекурсивного факториального метода, например
int fact(int n) {
if (n <= 1) return 1;
return n * fact(n - 1);
}
требуется только стек. Нажмите n - 1
, вызовите fact
и затем умножьте результат (который, вероятно, будет также возвращен в стек) на n
. Но даже если сам процесс рекурсии не требует динамической памяти, алгоритм , который вы реализуете с помощью рекурсии, может включать задачи, которые требуют динамической памяти. Поэтому для реализации самой рекурсии может не потребоваться динамическая память, но проблема, которую вы используете для решения рекурсии, может потребоваться.