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
相关推荐
2301_779622411 分钟前
为什么宝塔面板网站无法正常连接外部远程数据库_检查服务器安全组放行端口并开启IP授权
jvm·数据库·python
2401_833033622 分钟前
Go语言怎么做密码加密_Go语言bcrypt密码哈希教程【总结】
jvm·数据库·python
X56615 分钟前
mysql索引基数统计更新不及时_mysqlANALYZE分析表操作
jvm·数据库·python
艺杯羹6 分钟前
Tkinter实战:为CSDN爬虫打造可视化界面,从GUI到多线程完整方案
爬虫·python·开源
2301_775639897 分钟前
React 中的渲染(Rendering)机制详解
jvm·数据库·python
m0_7403524211 分钟前
测试库与生产库怎么应对同步中断断点续传_无损发布与更新方案
jvm·数据库·python
Liangwei Lin18 分钟前
LeetCode 41. 缺失的第一个正数
数据结构·算法·leetcode
m0_4954964119 分钟前
SQL批量更新状态机字段_使用CASE表达式一次性处理
jvm·数据库·python
2401_8504916521 分钟前
Python处理分类不平衡问题_使用平衡随机森林提升召回率
jvm·数据库·python
终生成长者29 分钟前
04LangChain SQL 问答系统知识点详解
数据库·python·sql·langchain