General Insertion Algorithm
- Do a normal BST insert.
- If tree is balanced, stop.
- Starting from new node, find first imbalanced ancestor. This
node becomes the pivot; its taller subtree is the rotator.
- The new value was inserted in one of the rotator's
subtrees (the taller one).
- If in rotator's outside subtree: 1
rotation will suffice.
- In in rotator's inside subtree: first
rotate that subtree, then perform main rotation.