341. Flatten Nested List
Given a nested List of Integers, implement an iterator to flatten it.
给一个嵌套数组, 要求做一个迭代器去把这个嵌套的数组压平
Example 1:
    [[1, 1], 2, [1, 1]] 压平后 [1, 1, 2, 1, 1]
Example 2:
    [1, [4, [6]]] 压平后 [1, 4, 6]
思路
迭代器, 就是需要我们去完成两个函数, 一个是next(), 另外一个是hasNext(). 对于这一题, 初始化的时候应该把给输入的数组存在栈里面. 由于栈的FILO的特性, 我们需要从后往前压.
对于hasNext()函数, 我们需要判断
- 栈是否为空, 如果为空, 则返回False
- 栈顶是否是Integer, 如果是, 则返回True
- 把栈顶的NestedList取出, 从后往前压入栈, 然后重复第一步
对于next()函数, 由于hasNext()保证了栈顶一定是Integer, 所以直接返回就可以了
Code
| 1 | #class NestedInteger(object): | 
EOF