/*double rotate binary tree nodefirst left child with its right childthen node with new left child for avl treesthis is double rotation for case update heightsthen set new root *void doublewithleftchildavlnode rotatewithrightchildk ->left )rotatewithleftchildk )figure routine to perform double rotation /*internal method to remove from subtree is the item to remove is the node that roots the subtree set the new root of the subtree *void removeconst comparable xavlnode ift =nullptr return/item not founddo nothing ifx element removext->left )else ift->element removext->right )else ift->left !nullptr & ->right !nullptr /two children ->element findmint->right )->elementremovet->elementt->right )else avlnode *oldnode tt ->left !nullptr ->left ->rightdelete oldnodebalancet )figure deletion in an avl tree