protected static <E extends Comparable<E>> Node<E> rotateRight (Node<E> n) {
		assert n != null : "n != null";
		assert !n.isLeaf && !n.left.isLeaf && n.left.color == RED :
		"rotateRight a BLACK left node will break the tree balance";
		
		Node<E> tempNode = n.left;
		boolean tempColor = n.color;
		n.left = tempNode.right;
		n.color = tempNode.color;
		tempNode.right = n;
		tempNode.color = tempColor;
		return tempNode;
	}