Course schedule: detect a cycle and return an order
Courses have prerequisites. Decide whether all courses can be finished (the prerequisite graph has no cycle), and if so return a valid order to take them. Use depth-first search with three node states, or Kahn's algorithm.
No answer yet. Write the first one; the best answer gets endorsed.
