Python | Leetcode Python题解之第341题扁平化嵌套列表迭代器

题目:

题解:

python 复制代码
class NestedIterator:
    def __init__(self, nestedList: [NestedInteger]):
        # 对于nestedList中的内容,我们需要从左往右遍历,
        # 但堆栈pop是从右端开始,所以我们压栈的时候需要将nestedList反转再压栈
        self.stack = nestedList[::-1]

    def next(self) -> int:
        # hasNext 函数中已经保证栈顶是integer,所以直接返回pop结果
        return self.stack.pop(-1).getInteger()

    def hasNext(self) -> bool: 
        # 对栈顶进行'剥皮',如果栈顶是List,把List反转再依次压栈,
        # 然后再看栈顶,依次循环直到栈顶为Integer。
        # 同时可以处理空的List,类似[[[]],[]]这种test case           
        while len(self.stack) > 0 and self.stack[-1].isInteger() is False:
            self.stack += self.stack.pop().getList()[::-1]
        return len(self.stack) > 0
相关推荐
lpfasd1231 天前
PyGithub用法详解
git·python·github
给我来一根1 天前
用户认证与授权:使用JWT保护你的API
jvm·数据库·python
重生之后端学习1 天前
19. 删除链表的倒数第 N 个结点
java·数据结构·算法·leetcode·职场和发展
白云千载尽1 天前
LQR与MPC.入门知识与实验
python·控制·mpc·lqr
鹿角片ljp1 天前
力扣14.最长公共前缀-纵向扫描法
java·算法·leetcode
weixin_433179331 天前
Hangman 猜字游戏使用列表List实现
开发语言·python
Remember_9931 天前
【数据结构】深入理解优先级队列与堆:从原理到应用
java·数据结构·算法·spring·leetcode·maven·哈希算法
52Hz1181 天前
二叉树理论、力扣94.二叉树的中序遍历、104.二叉树的最大深度、226.反转二叉树、101.对称二叉树
python·算法·leetcode
卖个几把萌1 天前
解决 Python 项目依赖冲突:使用 pip-tools 一键生成现代化的 requirements.txt
开发语言·python·pip
黎雁·泠崖1 天前
Java字符串入门:API入门+String类核心
java·开发语言·python