default Optional<T> previousLeaf() {
		return previousSibling()
			.map(Tree::lastLeaf)
			.or(() -> parent().flatMap(Tree::previousLeaf));
	}
Return the leaf before {@code this} node or {@code null} if {@code this}
node is the first leaf in the tree.
<p>
In order to determine the previous node, this method first performs a
linear search in the parent's child-list in order to find the current
node.
<p>
That implementation makes the operation suitable for short traversals
from a known position. But to traverse all the leaves in the tree, you
should use {@link #depthFirstIterator()} to iterate the nodes in the tree
and use {@link #isLeaf()} on each node to determine which are leaves.

@see #depthFirstIterator
@see #isLeaf
@return returns the leaf before {@code this} node
jenetics.ext/src/main/java/io/jenetics/ext/util/Tree.java