AVL Tree in JavaScript
An AVL tree is a self-balancing Binary Search Tree (BST) where the heights of the two child subtrees of any node cannot differ by more than one. If at any time they differ by more than one, rebalancing is done through LL, RR, LR or RL rotations to restore this property.