// Zigzag Iterator class ZigzagIterator { vector::iterator i, ii, j, jj; public: ZigzagIterator(vector& v1, vector& v2) { i = v1.begin(); ii = v1.end(); j = v2.begin(); jj = v2.end(); } int next() { if (i == ii) return *j++; swap(i, j); swap(ii, jj); return *j++; } bool hasNext() { return i != ii || j != jj; } };