public void Color(Graph graph) { var allRoutes = new List<List<Node>>(); GetAllRoutes(allRoutes, graph); if (allRoutes.Count == 0) throw new Exception("No routes found."); int minColorCount = -1; List<Node> answer = null; foreach (var route in allRoutes) { ColorNodes(route); if (minColorCount == -1 || graph.GetColorCount() < minColorCount) { minColorCount = graph.GetColorCount(); answer = route; } } ColorNodes(answer); }