AVL Tree

1/0
1.0x

AVL Tree

O(log n)Space: O(n)

Pseudocode

1procedure insert(node, value)
2 perform BST insert
3 update height of node
4 balance ← getBalance(node)
5 if balance > 1 and value < node.left.value
6 return rightRotate(node)
7 if balance < -1 and value > node.right.value
8 return leftRotate(node)
9 if balance > 1 and value > node.left.value
10 node.left ← leftRotate(node.left)
11 return rightRotate(node)
12 if balance < -1 and value < node.right.value
13 node.right ← rightRotate(node.right)
14 return leftRotate(node)