Encontrar una ruta posible ordenada alfabéticamente

Dada una lista de boletos de avión representados por pares de aeropuertos de salida y llegada [from, to], reconstruye el itinerario en orden. Todos los boletos pertenecen a un hombre que sale de A. Por lo tanto, el itinerario debe comenzar en A.

Ejemplos

find_path([["C", "F"], ["A", "C"], ["I", "Z"], ["F", "I"]]) ➞ ["A", "C", "F", "I", "Z"]

find_path([["A","C"], ["A","B"], ["C","B"], ["B","A"], ["B","C"]]) ➞ ["A","B","A","C","B","C"]
# Another possible reconstruction is ["A","C","B","A","B","C"].
# But it is larger in lexical order.

find_path([["Y", "L"], ["D", "A"],["A", "D"], ["R", "Y"], ["A", "R"]]) ➞  ["A", "D", "A", "R", "Y", "L"]

Notas

  • Si hay varios itinerarios válidos, debes devolver el itinerario que tenga el menor orden lexicográfico al leerlo como una sola cadena. Por ejemplo, el itinerario ["A", "B"] tiene un orden lexicográfico menor que ["A", "C"].
  • Puedes suponer que todos los boletos forman al menos un itinerario válido.
  • Deben usarse todos los boletos una sola vez.