private int checkHeight(BTPosition<T> current) {
		if (current == null)
			return 0;

		int leftH = checkHeight(current.getLeft());
		if (leftH == -1)
			return -1;
		int rightH = checkHeight(current.getRight());
		if (rightH == -1)
			return -1;

		int diff = leftH - rightH;

		if (Math.abs(diff) > 1)
			return -1;
		else
			return Math.max(leftH, rightH) + 1;// subtree+currentNode's height

	}