Развернуть рекурсивный алгоритм в обычный цикл. Путь Эйлера

Есть некий направленный мультиграф. Задаётся он при помощи списка рёбер. Минимально каждое ребро должно хранить информацию "Откуда" и "Куда".

Нужно найти все комбинации при которых захватываются все рёбра графа (Как я понял это алгоритм нахождения пути Эйлера)

Я написал алгоритм в виде рекурсии ( логика такова что я разворачиваю свой граф в дерево и простым DFS прохожусь по ветвям, если дошёл до конца - добавляю в ответ +1 ). Написано на C#, однако, думаю, смогу понять ответ и на других яп.

Задача: Развернуть рекурсию в обычный цикл.

Вот мой код:

public class Movement
    {
        public int From = 0;
        public int To = 0;
        public Movement(int from, int to)
        {
            this.From = from;
            this.To = to;
        }
        
        public int FindMovements(List<Movement> container)
        {
            int result = 0;
            bool existFlag = false; // Флаг, говорящий, остались ли вообще перемещения
            int temp = container.IndexOf(this);

            container.Remove(this);
            for (int i = 0; i < container.Count; i++)
            {
               existFlag = true;
               if (container[i].From == this.To)
                    result += container[i].FindMovements(container);
            }
            container.Insert(temp, this);

            return existFlag ? result : 1;
        }
    }

Ответы (0 шт):