给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树 :
返回其层序遍历:
[
[1],
[3,2,4],
[5,6]
]
说明:
树的深度不会超过 1000。
树的节点总数不会超过 5000。
solution:
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, vector<Node*> _children) { 11 val = _val; 12 children = _children; 13 } 14 }; 15 */ 16 class Solution { 17 public: 18 vector<vector<int>> levelOrder(Node* root) { 19 vector<vector<int> >vec; 20 if(root) 21 { 22 queue<Node*>q; 23 q.push(root); 24 while(!q.empty()) 25 { 26 int size = q.size(); 27 vector<int> vecChild; 28 while(size--) 29 { 30 Node* node = q.front(); 31 q.pop(); 32 vecChild.push_back(node->val); 33 for(auto child : node->children) 34 q.push(child); 35 } 36 vec.push_back(vecChild); 37 } 38 } 39 return vec; 40 } 41 };
原文地址:https://www.cnblogs.com/Swetchine/p/11307374.html
时间: 2024-10-09 06:10:38