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