private STNode<Key, Value> deleteMax(STNode<Key, Value> x)
	{
		// No right child? This is the max. Orphan it by returning its right
		// subtree
		if (x.right == null)
			return x.left;

		// Max is in the right subtree
		x.right = deleteMax(x.right);

		// Update size and height on the way up
		x.N = size(x);
		x.h = height(x);

		return x;
	}