难度:中等
题目描述:
给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。
列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。
示例:
输入: [[1,1],2,[1,1]]输出: [1,1,2,1,1]解释: 通过重复调用 next 直到 hasNext 返回 false,next 返回的元素的顺序应该是: [1,1,2,1,1]。
解题思路:
var NestedIterator = function(nestedList) {this.num = null;this.flag = false;this.stack = [];this.stack.push(nestedList);};NestedIterator.prototype.next = function() {this.flag = false;return this.num;};NestedIterator.prototype.hasNext = function() {if (!this.stack.length)return false;while (this.stack.length && !this.flag) {let temp = this.stack[this.stack.length - 1];if (temp.length) {let tt = temp.shift()if (tt.isInteger()) {this.num = tt.getInteger();this.flag = true;} elsethis.stack.push(tt.getList());} else {this.stack.pop();}}return this.flag;};
