Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ZigzagIterator {
- List<List<Integer>> lists = new ArrayList<>();
- Queue<int[]> q = new LinkedList<>();
- public ZigzagIterator(List<Integer> v1, List<Integer> v2) {
- lists.add(v1);
- lists.add(v2);
- for(int i = 0; i < lists.size(); i++)
- {
- List<Integer> list = lists.get(i);
- if(list.size() > 0) q.offer(new int[]{i, 0});
- }
- }
- public int next() {
- if(!hasNext()) return -1;
- int[] poll = q.poll();
- int val = lists.get(poll[0]).get(poll[1]);
- if(lists.get(poll[0]).size() > poll[1] + 1)
- {
- poll[1] += 1;
- q.offer(poll);
- }
- return val;
- }
- public boolean hasNext() {
- return !q.isEmpty();
- }
- }
- /**
- * Your ZigzagIterator object will be instantiated and called as such:
- * ZigzagIterator i = new ZigzagIterator(v1, v2);
- * while (i.hasNext()) v[f()] = i.next();
- */
Add Comment
Please, Sign In to add comment