오일러 서킷은 오일러 트레일에서 시작점과 끝점이 같은 경우이다.
무방향그래프 G에서 오일러 회로를 갖기 위한 필요충분조건은
- 그래프 G가 연결그래프 이고
- 그래프 G의 모든 Edge의 차수가 짝수이다.
방향그래프 에서는 각 정점에서 나가는 간선의 수와 들어오는 간선의 수도 같아야 한다.
이 조건을 통해 오일러 회로가 존재하는 것을 확인 할 수 있고 실제 방문하는 순서는
- DFS를 통해 현재 노드에서 나가는 간선이 있는 경우 그 간선을 지우고 재귀 호출을 한다.
- 재귀를 탈출하면서 해당 노드를 넣고 이 벡터를 뒤집으면 오일러 회로의 방문 순서가 나오게 된다.
- 이유는 현재 더이상 방문할 간선이 없는 노드는 순서상 뒤에 있어야 하므로 방문 후 뒤집어 줘야 한다.