Iterator

public class ZigzagIterator {
    Queue<Iterator<Integer>> queue = new LinkedList<>();
    public ZigzagIterator(List<Integer> v1, List<Integer> v2) {
        if (!v1.isEmpty()) queue.offer(v1.iterator());
        if (!v2.isEmpty()) queue.offer(v2.iterator());
    }

    public int next() {
        Iterator<Integer> curt = queue.poll();
        int val = curt.next();
        if (curt.hasNext()) queue.offer(curt);
        return val;
    }

    public boolean hasNext() {
       return !queue.isEmpty();
    }
}

Pre fill a peek element.

Last updated

Was this helpful?