Встречается на собеседованиях • сегодня

Какую знаешь альтернативу рекурсии

Итерация (циклы) — основная альтернатива рекурсии. Вместо вызова функции самой себя можно использовать циклы (for, while), что часто эффективнее по памяти (нет накладных расходов на вызовы функций и стек вызовов).

Пример рекурсивного и итеративного вычисления факториала:

python
# Рекурсия
def factorial_rec(n):
    return 1 if n <= 1 else n * factorial_rec(n - 1)

Итерация

def factorial_iter(n):
result = 1
for i in range(1, n + 1):
result *= i
return result

text

Для сложных случаев (например, обход деревьев) можно использовать **стек** (LIFO) или **очередь** (BFS) вручную.  

```python
# Обход дерева в глубину (DFS) без рекурсии
def dfs_iterative(root):
    stack = [root]
    while stack:
        node = stack.pop()
        print(node.val)
        if node.right:
            stack.append(node.right)
        if node.left:
            stack.append(node.left)

Итерация обычно быстрее и безопаснее (нет риска переполнения стека), но код может быть менее читаемым для некоторых задач.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы