eolymp
bolt
Try our new interface for solving problems
Məsələlər

Tree Balanslaşdırılmış ağac

Tree Balanslaşdırılmış ağac

İkilik ağac verilmişdir. Onun balanslaşdırılmış olduğunu yoxlayın. İkilik ağac o zaman balanslaşdırılmış adlanır ki, onun altağaclarının (sol və sağ) dərinliyi 1-dən çox fərqlənmir.

Ağaçın təyini:

// Java
class TreeNode
{
public:
  int val;
  TreeNode left;
  TreeNode right;
  TreeNode(int x) {
    val = x;
    left = NULL; 
    right = NULL;
};
// C++
class TreeNode
{
public:
  int val;
  TreeNode *left;
  TreeNode *right;
  TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

Ağac balanslaşdırılmış olarsa true, əks halda false qaytaran isBalanced funksiyasını reallaşdırın.

// Java
boolean isBalanced(TreeNode tree)
// C++
bool isBalanced(TreeNode *tree)

Nümunə

prb10112.gif

isBalanced funksiyası true qaytarır, belə ki, ağac balanslaşdırılmışdır.

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Müəllif Михаил Медведев