static LL webTrees_walkInParallel(L trees) { new LL out; webTrees_walkInParallel_impl(trees, out); ret out; } static void webTrees_walkInParallel_impl(L trees, LL out) { out.add(trees); trees = cloneList(trees); int n = 0; for (WebTree t : trees) if (t != null) n = max(n, l(t.children)); for i to n: { new L children; for (WebTree t : trees) children.add(t == null ? null : pairB(get(t.children, i))); webTrees_walkInParallel_impl(children, out); } }