public static <TNode extends AvlNode> TNode remove(TNode root, Object key,
      final AvlKeyComparator<TNode> keyComparator) {
      return remove(root, key, keyComparator, null);
    }
Removes the node matching the specified key from the tree
@param root          the current root of the tree
@param key           the key for the node we are trying to find
@param keyComparator the comparator to use to match node and key
@return the new root of the tree
hbase-common/src/main/java/org/apache/hadoop/hbase/util/AvlUtil.java