Визначити чи збалансовано дерево

Задача

Написати функцію яка визначає чи є дерево збалансованим. Дерево є збалансованим якщо різниця довжини між його найдовшою та найкоротшою гілками складає не більше одиниці.

Рішення

Знаходимо найкоротшу і найдовшу гілки і порівнюємо їх.

size_t min_depth(tree_node *t) 
{
 if (t == NULL) return 0; 
 return min(min_depth(t->left), min_depth(t->right)) +1; 
} 

size_t max_depth(tree_node *t) 
{ 
if (t == NULL) return 0; 
return max(max_depth(t->left), maxn_depth(t->right)) +1; 
} 

bool is_tree_balanced(tree_node *t) 
{ 
return max_depth(t) - min_depth(t) <= 1; 
}

Залишити відповідь