public class NestedIterator implements Iterator<Integer> {
private List<Integer> vals;
//Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合。
private Iterator<Integer> cur;
public NestedIterator(List<NestedInteger> nestedList) {
vals = new ArrayList<Integer>();
dfs(nestedList);
cur = vals.iterator();
}
public void dfs(List<NestedInteger> list){
if(list.size() == 0)
return ;
for(int i =0;i<list.size();i++){
if(list.get(i).isInteger() == true)//如果是一个整数
vals.add(list.get(i).getInteger());//直接放入集合中
else
dfs(list.get(i).getList());//如果是列表继续 深度遍历
}
}
@Override
public Integer next() {
return cur.next();
}
@Override
public boolean hasNext() {
return cur.hasNext();
}
}