И вправду.. тогда без меток никак не обойтись..
Тогда вот вариант: ставить метку на выбранной стене и, в случае возвращения к этой же метке (в случае цикла) менять стену на противоположную (и ставить там метку тоже) и идти по ней. Если в одном месте с обох сторон мы получаем метки нужно искать развилки и брать внутреннюю стенку в развилке.
Тогда вот вариант: ставить метку на выбранной стене и, в случае возвращения к этой же метке (в случае цикла) менять стену на противоположную (и ставить там метку тоже) и идти по ней. Если в одном месте с обох сторон мы получаем метки нужно искать развилки и брать внутреннюю стенку в развилке.