Рекурсия для чайников
Вы когда-нибудь смотрели в зеркало, которое стоит напротив другого зеркала? Там бесконечная глубина - отражение отражения отражения. Вот это и есть рекурсия. Только в программировании мы обычно не хотим бесконечности (иначе сервер упадет). Мы хотим, чтобы функция углублялась ровно столько раз, сколько нужно, а потом аккуратно возвращалась обратно - как матрешка, которая раскрывается до последней куклы, а затем собирается снова. Прежде чем писать код, ответьте себе на три вопроса (они спасут от stack overflow): Если эти три пункта есть - рекурсия безопасна...