429. N叉树的层序遍历

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

  1. [
  2. [1],
  3. [3,2,4],
  4. [5,6]
  5. ]

说明:

  1. 树的深度不会超过 1000
  2. 树的节点总数不会超过 5000

代码实现

  1. #include<queue>
  2. class Solution {
  3. public:
  4. vector<vector<int>> levelOrder(Node* root) {
  5. vector<vector<int>> resVec;
  6. queue<Node*> myqueue;
  7. vector<int> layerVec;
  8. if(root == NULL)
  9. return resVec;
  10. myqueue.push(root);
  11. Node* ele;
  12. while(!myqueue.empty()){
  13. vector<int> layerVec;
  14. for(int layerNums=myqueue.size();0<layerNums;layerNums--){
  15. ele = myqueue.front();
  16. for(int i=0;i<ele->children.size();i++){
  17. myqueue.push(ele->children[i]);
  18. }
  19. layerVec.push_back(ele->val);
  20. myqueue.pop();
  21. }
  22. resVec.push_back(layerVec);
  23. }
  24. return resVec;
  25. }
  26. };