Lintcode528 Flatten Nested List Iterator solution 题解

【题目描述】

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/

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容