You are given a list of airline tickets where `tickets[i] = [from_i, to_i]` represent the departure and the arrival airports of one flight. Reconstruct the itinerary in order and return it. All of the tickets belong to a man who departs from 'JFK'. Thus, the itinerary must begin with 'JFK'. If there are multiple valid itineraries, you should return the itinerary that has the smallest lexical order when read as a single string.
Hierholzer's Algorithm (Eulerian Path)
This is a problem of finding an Eulerian path in a directed graph. We use DFS to traverse the graph. To ensure the smallest lexical order, we sort the neighbors of each airport alphabetically. The core of Hierholzer's algorithm is that we only add a node to the itinerary *after* we've visited all its outgoing edges. This naturally handles dead ends and returns the path in reverse order.