Write The Shortest Program To Check If A Binary Tree Is Balanced For each node in a balanced binary tree, the maximum difference in the heights of the left child subtree and the right child subtree are at most 1.

The height of a binary tree is the distance from the root node to the node child that is farthest from the root.

Below is an example:

           2 &lt;-- root: Height 1
          / \
         7   5 &lt;-- Height 2
        / \   \
       2   6   9 &lt;-- Height 3
          / \  /
         5  11 4 &lt;-- Height 4 


Height of binary tree: 4

The following are binary trees and a report on whether or not they are balanced:



The tree above is unbalanced.



The above tree is balanced.

Write the shortest program possible that accepts as input the root of a binary tree and returns a falsey value if the tree is unbalanced and a truthy value if the tree is balanced.

Input

The root of a binary tree. This may be in the form of a reference to the root object or even a list that is a valid representation of a binary tree.

Output

Returns truthy value: If the tree is balanced

Returns falsey value: If the tree is unbalanced.

Definition of a Binary Tree

A tree is an object that contains a value and either two other trees or pointers to them.

The structure of the binary tree looks something like the following:

typedef struct T
{
   struct T *l;
   struct T *r;
   int v;
}T;


If using a list representation for a binary tree, it may look something like the following:

[root_value, left_node, right_node]
Jelly, 11 bytes

ḊµŒḊ€IỊ;ß€Ạ


Try it online!

The empty tree is represented by [].