# How do I know which direction I should rotate a node in an AVL Tree?

I'm studying AVL Trees in my programming class and we got this exercise dealing with right, left, left-right and right-left rotations as a way to check if we understand the theoretical concept of AVL Trees. We're given the numbers $$100,50,25,10,37,32,200$$. Creating an AVL Tree until $$37$$ wasn't that difficult but then I got stuck at balancing out the tree when I insert $$32$$. The following is my method:

Now I know that there is a conflict at $$52$$ but since it has 3 nodes (LRL), I don't understand how I should rotate. I think, I should get $$37$$ as the root node $$25$$ as it's left child and $$52$$ as it's right child but I dunno.

I think, I should get 37 as the root node 25 as it's left child and 52 as it's right child but I dunno.

You plan is correct.

What you need to do is a left-right rotation as shown in the third column of the table below. That is, a left rotation at node 25 followed by a right rotation at 52. It is symmetric to the right-left rotation as shown in the fourth column and as explained in Wikipedia.

1st step : Left-Left rotation. 2nd & 3rd step :Left-Right Rotation. 4th step: Right-Right Rotation. 5th is Final AVL tree.

https://www.tutorialspoint.com/data_structures_algorithms/avl_tree_algorithm.htm

• Can you explain how did you know in which directions to perform the rotations? – Yuval Filmus Mar 8 '19 at 21:15
• @Yuval Filmus , a link is added for better explanation. – NIKHIL Mar 9 '19 at 9:15
• OK but what happens if that link breaks? We're trying to be a collection of answers: Google already does the "links to answers" thing far better than we ever could. – David Richerby Mar 9 '19 at 11:07
• In that case that child will be added to same level where it was before rotation. – NIKHIL Mar 9 '19 at 11:21