JavaScript: Balanced binary tree
The feature of the binary tree structure gives a good increase in efficiency when searching for the desired value. The binary tree must be balanced to make this happen. This means that any node of the tree must be constructed such that the sum of the nodes in the left and right subtrees is roughly equal.
Node.js
Implement the isBalanced()
method that checks the tree for balance. It returns true
if each node's left and right subtrees include no more than two different nodes. Otherwise, the method should return false
.
Balanced tree
Unbalanced tree
In node 5
, the number of nodes in the left subtree is 4, and in the right — 1. The difference is 3. This is more than the maximum allowable difference according to the condition of the problem (2).
Examples
const tree1 = new Node(4,
new Node(3,
new Node(2)));
tree1.isBalanced(); // true
const tree2 = new Node(4,
new Node(3,
new Node(2,
new Node(1))));
tree2.isBalanced(); // false
For full access to the challenge you need a professional subscription.
A professional subscription will give you full access to all Hexlet courses, projects and lifetime access to the theory of lessons learned. You can cancel your subscription at any time.