An AVL Tree is a type of binary search tree which tries to balance itself after every insertion and deletion of a node. A binary tree is said to be balanced when the heights of left subtree and right subtree differ by not more than 1. This ensures that the tree does not lean too much on either side so that data can be efficiently searched. Re-balancing of nodes in an AVL tree is performed after every insertion or deletion of node to make sure that new additions or removals do not skew the binary tree.
TODO: Need to add more information along with resources.