default Optional<T> childAtPath(final Path path) {
		T node = self();
		for (int i = 0; i < path.length() && node != null; ++i) {
			node = path.get(i) < node.childCount()
				? node.childAt(path.get(i))
				: null;
		}

		return Optional.ofNullable(node);
	}
Return the child node at the given {@code path}. A path consists of the
child index at a give level, starting with level 1. (The root note has
level zero.) {@code tree.childAtPath(Path.of(2))} will return the third
child node of {@code this} node, if it exists and
{@code tree.childAtPath(Path.of(2, 0))} will return the first child of
the third child of {@code this node}.

@since 4.4

@see #childAtPath(int...)

@param path the child path
@return the child node at the given {@code path}
@throws NullPointerException if the given {@code path} array is
        {@code null}
jenetics.ext/src/main/java/io/jenetics/ext/util/Tree.java