leetcode算法(429.N叉树的层序遍历)

cpp 复制代码
class Solution {
public:
    // 实现N叉树的层序遍历
    vector<vector<int>> levelOrder(Node* root) {
        // 创建队列用于BFS层序遍历
        queue<Node*> que;
        
        // 如果根节点不为空,将其加入队列
        if (root != NULL) que.push(root);
        
        // 存储结果的二维向量,每层作为一个子向量
        vector<vector<int>> result;
        
        // 当队列不为空时,继续遍历
        while (!que.empty()) {
            // 获取当前层的节点数量
            int size = que.size();
            
            // 创建向量存储当前层的节点值
            vector<int> vec;
            
            // 遍历当前层的所有节点
            for (int i = 0; i < size; i++) {
                // 取出队首节点
                Node* node = que.front();
                que.pop();
                
                // 将当前节点的值加入当前层向量
                vec.push_back(node->val);
                
                // 遍历当前节点的所有孩子节点
                for (int j = 0; j < node->children.size(); j++) {
                    // 如果孩子节点不为空,将其加入队列
                    // 实际上N叉树的children通常不包含NULL,这里判断是冗余的
                    if (node->children[j]) que.push(node->children[j]);
                }
            }
            
            // 将当前层的结果加入总结果
            result.push_back(vec);
        }
        
        // 返回层序遍历结果
        return result;
    }
};
相关推荐
Asize4 分钟前
数组数据结构底层:从灵活到陷阱
前端·javascript·算法
hairenwangmiao29 分钟前
B4041 [GESP202409 四级] 区间排序
算法·排序
人道领域39 分钟前
【LeetCode刷题日记】47.全排列Ⅱ
java·开发语言·算法·leetcode
漂流瓶jz41 分钟前
UVA-1606 两亲性分子 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·向量·aoapc·算法竞赛入门经典·atan2·浮点
Navigator_Z43 分钟前
LeetCode //C - 1095. Find in Mountain Array
c语言·算法·leetcode
不会就选b1 小时前
算法日常・每日刷题--<二分查找>1
算法
Chen_harmony1 小时前
二、顺序表
数据结构
「維他檸檬茶」1 小时前
大模型算法学习2026.6.13
学习·算法
叫我:松哥1 小时前
基于Python的共享单车租赁数据分析与预测系统,技术栈flask+boostrap+随机森林+XGBoost
人工智能·python·深度学习·算法·随机森林·数据分析·flask
BAGAE2 小时前
星链卫星数据获取:从太空安全到实时通信的技术革命
网络·数据结构·数据库·算法·云计算·hbase