题目描述
给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。
列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。
示例 1:
输入: [[1,1],2,[1,1]]
输出: [1,1,2,1,1]
解释: 通过重复调用 next 直到 hasNext 返回 false,next 返回的元素的顺序应该是: [1,1,2,1,1]。
示例 2:
输入: [1,[4,[6]]]
输出: [1,4,6]
解释: 通过重复调用 next 直到 hasNext 返回 false,next 返回的元素的顺序应该是: [1,4,6]。
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/flatten-nested-list-iterator/
解题思路
第一种方案,遍历这个裂变,将整数全都压入数组中,然后判断数组中是否有值,依次遍历。
第二种方案,因为第一种方案需要将所有的数据都先遍历出来,比较耗费空间。第二种方案是,维护一个数组,判断如果第一个元素是整数,直接获取即可,如果是数组,将数组中的整数都按顺序压入遍历的数组中,如此循环,可以节省空间,也符合迭代器惰性获取值的特性。所以本题采用该方法。