https://leetcode.com/problems/flatten-2d-vector/description/

image.png
这道题就是一个用完了,用下一个。所以我们只需要报错每个LIST的ITERATOR,放进栈里。一个用完了就出栈,拿下一个开始用。
Stack<Iterator<Integer>> st;
public Vector2D(List<List<Integer>> vec2d) {
st = new Stack<>();
for(int i = vec2d.size()-1; i >= 0; i--){
st.push(vec2d.get(i).iterator());
}
}
@Override
public Integer next() {
return st.peek().next();
}
@Override
public boolean hasNext() {
while(!st.isEmpty()){
if(!st.peek().hasNext()) st.pop();
else return true;
}
return false;
}