Given two 1d vectors, implement an iterator to return their elements alternately.
1 2 3 4 5
For example, given two 1d vectors:
v1 = [1, 2] v2 = [3, 4, 5, 6] By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1, 3, 2, 4, 5, 6].
publicintnext(){ Iterator<Integer> cur = null; if (!iter1.hasNext() && iter2.hasNext()) cur = iter2; if (!iter2.hasNext() && iter1.hasNext()) cur = iter1; if (iter1.hasNext() && iter2.hasNext()) { if (exc % 2 == 1) cur = iter1; else cur = iter2; } exc++; return cur.next(); }
* Your ZigzagIterator object will be instantiated and called as such: * ZigzagIterator i = new ZigzagIterator(v1, v2); * while (i.hasNext()) v[f()] = i.next(); */
近期评论