Get your own Python server Result Size: 625 x 565
x
 
class TreeNode:
  def __init__(self, data):
    self.data = data
    self.left = None
    self.right = None
    self.height = 1
def getHeight(node):
  if not node:
    return 0
  return node.height
def getBalance(node):
  if not node:
    return 0
  return getHeight(node.left) - getHeight(node.right)
def rightRotate(y):
  x = y.left
  T2 = x.right
  x.right = y
  y.left = T2
  y.height = 1 + max(getHeight(y.left), getHeight(y.right))
  x.height = 1 + max(getHeight(x.left), getHeight(x.right))
  return x
def leftRotate(x):
  y = x.right
  T2 = y.left
  y.left = x
  x.right = T2
  x.height = 1 + max(getHeight(x.left), getHeight(x.right))
  y.height = 1 + max(getHeight(y.left), getHeight(y.right))
  return y
def insert(node, data):
  if not node:
    return TreeNode(data)
  if data < node.data:
    node.left = insert(node.left, data)
  elif data > node.data:
    node.right = insert(node.right, data)
  # Update the balance factor and balance the tree
  node.height = 1 + max(getHeight(node.left), getHeight(node.right))
  balance = getBalance(node)
A, B, C, D, E, F, G, H,
Deleting A
B, C, D, E, F, G, H,