美文网首页
Lintcode528 Flatten Nested List

Lintcode528 Flatten Nested List

作者: 程风破浪会有时 | 来源:发表于2018-04-29 23:00 被阅读0次

    【题目描述】

    Given a nested list of integers, implement an iterator to flatten it.

    Each element is either an integer, or a list -- whose elements may also be integers or other lists.

     Notice

    You don't need to implement the remove method.

    给你一个嵌套的列表,实现一个迭代器将其摊平。

    一个列表的每个元素可能是整数或者一个列表。

     注意事项

    你不需要实现remove方法。

    【题目链接】

    www.lintcode.com/en/problem/flatten-nested-list-iterator/

    【题目解析】

    这道题要求用迭代的方式。

    迭代可以利用stack来完成。先将list中所有元素从后往前压入栈中。在hasNext()中,首先判断栈是否为空,若不为空再判断栈顶元素是整数还是list,若是整数则返回true,若是list则移除栈顶元素,并将其中元素按从后往前压入栈中,并再次从头执行hasNext的步骤,直到栈为空则返回false。next则直接取出栈顶元素并返回其值(根据hasNext,一定为整数而非list)。

    【参考答案】

    www.jiuzhang.com/solutions/flatten-nested-list-iterator/

    相关文章

      网友评论

          本文标题:Lintcode528 Flatten Nested List

          本文链接:https://www.haomeiwen.com/subject/hsckhftx.html