提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、力扣341. 扁平化嵌套列表迭代器
前言
N叉树的结构,构造迭代器
一、力扣341. 扁平化嵌套列表迭代器
/*** // This is the interface that allows for creating nested lists.* // You should not implement it, or speculate about its implementation* public interface NestedInteger {** // @return true if this NestedInteger holds a single integer, rather than a nested list.* public boolean isInteger();** // @return the single integer that this NestedInteger holds, if it holds a single integer* // Return null if this NestedInteger holds a nested list* public Integer getInteger();** // @return the nested list that this NestedInteger holds, if it holds a nested list* // Return empty list if this NestedInteger holds a single integer* public List<NestedInteger> getList();* }*/
public class NestedIterator implements Iterator<Integer> {LinkedList<NestedInteger> list;public NestedIterator(List<NestedInteger> nestedList) {list = new LinkedList<>(nestedList);}@Overridepublic Integer next() {return list.remove(0).getInteger();}@Overridepublic boolean hasNext() {while(!list.isEmpty() && !list.get(0).isInteger()){List<NestedInteger> first = list.remove(0).getList();for(int i = first.size()-1; i >= 0; i --){list.addFirst(first.get(i));}}return !list.isEmpty();}
}/*** Your NestedIterator object will be instantiated and called as such:* NestedIterator i = new NestedIterator(nestedList);* while (i.hasNext()) v[f()] = i.next();*/