@Override
    public ListIterator<SpanNode> childIteratorRecursive() {
        List<ListIterator<SpanNode>> childIterators = new ArrayList<ListIterator<SpanNode>>();
        for (Children ch : childTrees) {
            childIterators.add(ch.childIteratorRecursive());
        }
        return new SerialIterator(childIterators);
    }
Recursively traverses all children (not only leaf nodes) of all subtrees of this AlternateSpanList, in a
depth-first fashion.
The ListIterator only supports iteration forwards, and the optional operations that are implemented are
remove() and set(). add() is not supported.

@return a ListIterator which recursively traverses all children and their children etc. of all subtrees of this AlternateSpanList
@see java.util.ListIterator
document/src/main/java/com/yahoo/document/annotation/AlternateSpanList.java