281. Zigzag Iterator

https://leetcode.com/problems/zigzag-iterator/description/

281. Zigzag Iterator_第1张图片
image.png

竖着走,我们可以发现,就是一个数组取了一个后,我们让他又排到最后。然后下一个数组的头就上来。这样我们可以用一个QUEUE+ITERATOR来实现这个效果。
这样也很方便的拓展到K个

Queue> l;
    public ZigzagIterator(List v1, List v2) {
        l = new LinkedList<>();
        if(!v1.isEmpty()) l.add(v1.iterator());
        if(!v2.isEmpty()) l.add(v2.iterator());
    }

    public int next() {
       Iterator cur = l.poll();
        int ret = cur.next();
        if(cur.hasNext()) l.offer(cur);
        return ret;
    }

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

你可能感兴趣的:(281. Zigzag Iterator)