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

题目:

题解:

cpp 复制代码
class NestedIterator {
private:
    vector<int> vals;
    vector<int>::iterator cur;

    void dfs(const vector<NestedInteger> &nestedList) {
        for (auto &nest : nestedList) {
            if (nest.isInteger()) {
                vals.push_back(nest.getInteger());
            } else {
                dfs(nest.getList());
            }
        }
    }

public:
    NestedIterator(vector<NestedInteger> &nestedList) {
        dfs(nestedList);
        cur = vals.begin();
    }

    int next() {
        return *cur++;
    }

    bool hasNext() {
        return cur != vals.end();
    }
};
相关推荐
yaoh.wang几秒前
力扣(LeetCode) 83: 删除排序链表中的重复元素 - 解法思路
程序人生·算法·leetcode·链表·面试·职场和发展
阿昭L5 分钟前
leetcode旋转链表
算法·leetcode·链表
im_AMBER6 分钟前
Leetcode 81 【滑动窗口(定长)】
数据结构·笔记·学习·算法·leetcode
xu_yule11 分钟前
算法基础(背包问题)-完全背包
c++·算法·动态规划·完全背包
gfdhy14 分钟前
【c++】素数详解:概念、定义及高效实现(判断方法 + 筛法)
开发语言·c++·算法·数学建模·ai编程
Swift社区19 分钟前
LeetCode 452 - 用最少数量的箭引爆气球
算法·leetcode·职场和发展
lzh2004091921 分钟前
Set 和 Map 深入详解及其区别
数据结构·c++
SmoothSailingT31 分钟前
C/C++——结构体(Struct)
开发语言·c++·结构体·struct
Lucis__33 分钟前
红黑树实现—规则&约束的平衡之道
数据结构·c++·算法·红黑树
yaoh.wang36 分钟前
力扣(LeetCode) 70: 爬楼梯 - 解法思路
python·算法·leetcode·面试·职场和发展·动态规划·递归