🔥 Рекурсия на пальцах: когда она нужна и почему ломает голову
Рекурсия — это когда функция вызывает саму себя. Просто? Нет. Поломало голову? Точно. Давайте на примерах.
Идеально для старта. Формула: n! = n * (n-1)!
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
Без рекурсии — неудобно.
def traverse(node):
if node is None:
return
print(node.value)
traverse(node.left)
traverse(node.right)
— Отлично работает там, где есть вложенные структуры: деревья, графы, матрёшки.
— Позволяет писать компактный и красивый код (иногда даже читаемый).
— Но: жрет стек, может улететь в бесконечность и требует аккуратного базового случая (if для выхода).
Рекурсия — мощный инструмент, если понимать где и как её приручать.
Proglib Academy #буст