/**
  * Joins two trees
  *
  * @param childNode Child node
  * @param parentNode Parent node
  * @param side Side of the parent node to join child node to
  */
 protected void joinTrees(TreeNode<K, V> childNode, TreeNode<K, V> parentNode, Side side) {
   if (parentNode == null) {
     root = childNode;
   } else {
     switch (side) {
       case RIGHT:
         parentNode.setRightNode(childNode);
         break;
       case LEFT:
         parentNode.setLeftNode(childNode);
         break;
     }
   }
 }