При реализации обхода в глубину нужно проверять вершины на предмет повторных посещений, чтобы предотвратить бесконечную рекурсию. 23
Это происходит из-за того, что если из одной вершины можно перейти в другую, то и в обратную сторону, и рекурсия может стать бесконечной. 2 Чтобы решить проблему, нужно не проходить в ту вершину, в которой уже был исследователь, то есть которая уже не представляет для него интерес. 23
Для реализации алгоритма необходимо отмечать, какие вершины уже посещал исследователь, а какие ещё нет. 2 Это можно сделать при помощи списка visited, где visited[i] == True для посещённых вершин, и visited[i] == false для непосещённых. 3