treeLevelStartPoints = new long[maxDepth];
treeLevelStartPoints = new long[maxDepth + 1];
	public void calculateTreeLevelStartPoints() {		treeLevelStartPoints = new long[maxDepth];		// we know the start point of the root element (which is always 1)		// and the start point of the first non-root node (2)		treeLevelStartPoints[0] = 1;		treeLevelStartPoints[1] = children + 1;		for (int i = 1; i < maxDepth - 1; i++) {			treeLevelStartPoints[i + 1] =				(treeLevelStartPoints[i] - treeLevelStartPoints[i - 1])					* treeLevelOrder[i]					+ treeLevelStartPoints[i];		}	}