@SuppressWarnings("unchecked")
	private T back()
	{
		boolean back_left = true, back_right = true;
		Comparable<T> lprev = null, rprev = null;
		while (true)				
		{
			if (back_left)
				if (!left.hasPrev())
					return null;
				else
					lprev = (Comparable<T>)left.prev();
			if (back_right)
				if (!right.hasPrev())
					return null;
				else
					rprev = (Comparable<T>)right.prev();
			int comp = lprev.compareTo((T)rprev);
			if (comp == 0)
				return (T)lprev;
			else if (comp < 0) // lprev < rprev
			{
				back_left = false;
				back_right = true;
			}
			else
			{
				back_left = false;
				back_right = true;
			}				
		}		
	}