The Runtime Theory
hardLeetCode#eulerian-path#dfs

Reconstruct Itinerary

Use every ticket exactly once to build a route beginning at JFK, choosing the lexicographically smallest valid route.

The Runtime Theory Team25 min read
Solve it

Solving happens on the judge — come back and mark it done

Sample cases

intickets=[["MUC","LHR"],["JFK","MUC"],["SFO","SJC"],["LHR","SFO"]]

out["JFK","MUC","LHR","SFO","SJC"]

intickets=[["JFK","SFO"],["JFK","ATL"],["SFO","ATL"],["ATL","JFK"],["ATL","SFO"]]

out["JFK","ATL","JFK","SFO","ATL","SFO"]

intickets=[["JFK","A"],["A","JFK"]]

out["JFK","A","JFK"]

Use every ticket exactly once to build a route beginning at JFK, choosing the lexicographically smallest valid route.

A good solution should

  • State the invariant or decision rule that makes the approach correct.
  • Explain time and space costs in terms of input size and required output.
  • Handle empty, minimal, duplicate, and boundary-shaped inputs.

Reasoning prompt

Sort adjacency lists and use Hierholzer’s algorithm; greedily emitting a destination too early can strand unused tickets.

Use the linked judge for the canonical challenge. The examples above are compact TRT checks; create additional tests around the boundary most likely to break your invariant.

More practice in this topic

One dispatch a week

The trace behind each problem, the tradeoff that explains it, and one technical dispatch per week — no noise.

One technical dispatch per week. No noise.

Not started

Sign in to save your learning progress.

Sign in to save