Як визначити, чи є граф деревом Python?

Аналіз алгоритму Неориентированный граф, що з n вершин, буде деревом, якщо він зв'язковий і містить n – 1 ребро. Запускаємо пошук у глибину із першої вершини. Якщо є зворотне ребро, то граф має цикл і є деревом.