Номеруешь каждую компоненту, переделывает граф так, чтобы вместо вершин были компоненты, петли вида ребро в само себя выкидываешь, повторяющиеся тоже.
В итоге, в графе должно быть не более одного исходящего ребра из каждой компоненты, не более одного входящего ребра и граф должен быть связным. Та компонента у которой нет входящего ребра, будет корнем и любая вершина из нее будет подходить