【力扣·每日一题】429. N 叉树的层序遍历(C++ bfs)

简介: 【力扣·每日一题】429. N 叉树的层序遍历(C++ bfs)

题目链接

题意

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。

思路

采用bfs,用m记录队列的大小,这也就是这层的节点个数,然后遍历这m个节点,将这m个节点的值放入答案里,并且将子节点放入队列里。

代码

/*
// Definition for a Node.
class Node {
public:
    int val;
    vector<Node*> children;
    Node() {}
    Node(int _val) {
        val = _val;
    }
    Node(int _val, vector<Node*> _children) {
        val = _val;
        children = _children;
    }
};
*/
class Solution {
public:
    vector<vector<int>> levelOrder(Node* root) {
        vector<vector<int>>ans;
        if(!root) return ans;
        vector<int>tmp;
        queue<Node*>q;
        q.push(root);
        while(!q.empty()){
            int m=q.size();
            tmp.clear();
            while(m--){
                Node* t=q.front();q.pop();
                tmp.push_back(t->val);
                for(Node* tt:t->children) q.push(tt);
            }
            ans.push_back(tmp);
        }
        return ans;
    }
};
目录
相关文章
|
15天前
|
C++
【C++】手撕AVL树(下)
【C++】手撕AVL树(下)
20 1
|
22天前
|
算法 测试技术 C++
【C++高阶】掌握AVL树:构建与维护平衡二叉搜索树的艺术
【C++高阶】掌握AVL树:构建与维护平衡二叉搜索树的艺术
15 2
|
15天前
|
Java C++ Python
【C++】手撕AVL树(上)
【C++】手撕AVL树(上)
22 0
|
1月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-2
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
1月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-1
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
1月前
|
存储 机器学习/深度学习 算法
LeetCode 题目 102:二叉树的层序遍历
LeetCode 题目 102:二叉树的层序遍历
|
1月前
|
算法 数据可视化 数据挖掘
LeetCode题目104: 二叉树的最大深度(递归\迭代\层序遍历\尾递归优化\分治法实现 )
LeetCode题目104: 二叉树的最大深度(递归\迭代\层序遍历\尾递归优化\分治法实现 )
LeetCode题目104: 二叉树的最大深度(递归\迭代\层序遍历\尾递归优化\分治法实现 )
|
1月前
|
C++
【c++】avl树
【c++】avl树
9 0
|
2月前
|
存储 算法 C语言
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
20 5
|
2月前
|
C语言 C++
从C语言到C++_27(AVL树)概念+插入接口实现(四种旋转)(下)
从C语言到C++_27(AVL树)概念+插入接口实现(四种旋转)
28 2