public boolean isBalanced2(BTPosition<T> current)
			throws InvalidPositionException {
		if (current == null)
			return true;

		int diff = treeHeight(current.getLeft())
				- treeHeight(current.getRight());

		if (Math.abs(diff) > 1)
			return false;
		else
			return isBalanced(current.getLeft())
					&& isBalanced(current.getRight());
	}