341.扁平化嵌套列表迭代器
链接:341.扁平化嵌套列表迭代器
难度:Medium
标签:栈、树、深度优先搜索、设计、队列、迭代器
简介:给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。
题解 1 - typescript
- 编辑时间:2021-03-23
- 执行用时:128ms
- 内存消耗:49.2MB
- 编程语言:typescript
- 解法介绍:递归重新载入。
class NestedIterator {
  private arr: number[] = [];
  constructor(nestedList: NestedInteger[]) {
    this.loadArray(nestedList);
  }
  hasNext(): boolean {
    return this.arr.length > 0;
  }
  next(): number {
    return this.arr.shift()!;
  }
  loadArray(nestedList: NestedInteger[]): void {
    for (const nestedInteger of nestedList) {
      if (nestedInteger.isInteger()) {
        this.arr.push(nestedInteger.getInteger()!);
      } else {
        this.loadArray(nestedInteger.getList());
      }
    }
  }
}