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
相关推荐
wangwangmoon_light26 分钟前
1.2 LeetCode总结(线性表)_双指针
算法·leetcode·职场和发展
码农小韩1 小时前
AIAgent应用开发——DeepSeek分析(一)
人工智能·python·深度学习·agent·强化学习
学Linux的语莫1 小时前
skills的使用
java·数据库·python
Bear on Toilet1 小时前
BFS_FloodFill_46 . 腐烂的橘子问题
数据结构·c++·算法·leetcode·宽度优先
样例过了就是过了2 小时前
LeetCode热题100 找到字符串中所有字母异位词
算法·leetcode
像风一样的男人@2 小时前
python --打包pyd或so文件
开发语言·python
MediaTea3 小时前
Python:生成器对象的扩展接口
开发语言·网络·python
滴滴答滴答答3 小时前
LeetCode Hot100 之 17 合并区间
算法·leetcode·职场和发展
Katecat996633 小时前
基于FCOS-HRNetV2P的高空作业安全装备检测与违规行为识别系统
python
好家伙VCC4 小时前
# 发散创新:基于Python的轻量级测试框架设计与实践 在现代软件开发中,**自动化
java·开发语言·python·自动化