429. N 叉树的层序遍历(BFS)
2022/5/2 6:14:33
本文主要是介绍429. N 叉树的层序遍历(BFS),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
429. N 叉树的层序遍历
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
示例 1:
输入:root = [1,null,3,2,4,null,5,6] 输出:[[1],[3,2,4],[5,6]]
示例 2:
输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14] 输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]
提示:
- 树的高度不会超过
1000
- 树的节点总数在
[0, 10^4]
之间
1 /* 2 // Definition for a Node. 3 class Node { 4 public: 5 int val; 6 vector<Node*> children; 7 8 Node() {} 9 10 Node(int _val) { 11 val = _val; 12 } 13 14 Node(int _val, vector<Node*> _children) { 15 val = _val; 16 children = _children; 17 } 18 }; 19 */ 20 21 class Solution { 22 public: 23 vector<vector<int>> levelOrder(Node* root) { 24 vector<vector<int>> ans; 25 if (root == nullptr) { 26 return ans; 27 } 28 queue<Node *> q; 29 q.push(root); 30 while (!q.empty()) { 31 int size = q.size(); 32 vector<int> vec; 33 for (int i = 0; i < size; i++) { 34 Node *tmp = q.front(); 35 q.pop(); 36 if (tmp == nullptr) { 37 continue; 38 } 39 vec.push_back(tmp->val); 40 for (auto &node : tmp->children) { 41 if (node != nullptr) { 42 q.push(node); 43 } 44 } 45 } 46 ans.push_back(vec); 47 } 48 return ans; 49 } 50 };
这篇关于429. N 叉树的层序遍历(BFS)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?