default int depth() {
		final Iterator<T> it = breadthFirstIterator();

		T last = null;
		while (it.hasNext()) {
			last = it.next();
		}

		assert last != null;
		return last.level() - level();
	}
Returns the depth of the tree rooted at this node. The <i>depth</i> of a
tree is the longest distance from {@code this} node to a leaf. If
{@code this} node has no children, 0 is returned. This operation is much
more expensive than {@link #level()} because it must effectively traverse
the entire tree rooted at {@code this} node.

@return the depth of the tree whose root is this node
jenetics.ext/src/main/java/io/jenetics/ext/util/Tree.java