LeetCode 281, Medium. Topics: Design, Queue, Array, Iterator. View on LeetCode.
Generate this problem as a practice environment: tested reference solution, 13 parametrized pytest cases, and a playground notebook:
Problem
Given two vectors of integers v1 and v2, implement an iterator to return their elements alternately.
Implement the ZigzagIterator class:
ZigzagIterator(List<int> v1, List<int> v2) initializes the object with the two vectors v1 and v2.
boolean hasNext() returns true if the iterator still has elements, and false otherwise.
int next() returns the current element of the iterator and moves the iterator to the next element.
Follow up: What if you are given k vectors? How well can your code be extended to such cases?
Examples
Constraints
0 <= v1.length, v2.length <= 1000
1 <= v1.length + v2.length <= 2000
-10^9 <= v1[i], v2[i] <= 10^9
Solution
Reference implementation from solution.py on GitHub, full suite in test_solution.py:
Complexity
NeetCode All. Last modified on September 7, 2026