This is my approach.
public static void interleave(ArrayList a1, ArrayList a2) {
int start = 0;
int i;
int size = a1.size();
for (i = 1; i < a1.size(); i += 2) {
if (start < a2.size()) {
a1.add(i, a2.get(start++));
}
}
while (a1.size() < (size + a2.size())) {
a1.add(i++, a2.get(start++));
}
}