(N叉树 BFS) leetcode429. N-ary Tree Level Order Traversal

mac2022-06-30  157

Given an n-ary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

For example, given a 3-ary tree:

 

 

We should return its level order traversal:

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

 

Note:

The depth of the tree is at most 1000.The total number of nodes is at most 5000.

-----------------------------------------------------------------------------------------------------------------------------------

这个层序遍历,自然用BFS写。和二叉树的层序遍历类似,连代码不会相差很大。

C++代码:

/* // Definition for a Node. class Node { public: int val; vector<Node*> children; Node() {} Node(int _val, vector<Node*> _children) { val = _val; children = _children; } }; */ class Solution { public: vector<vector<int>> levelOrder(Node* root) { if(!root) return {}; queue<Node*> q; q.push(root); vector<vector<int> > vec; while(!q.empty()){ vector<int> vec1; int ans = q.size(); for(int i = ans;i > 0; i--){ auto t = q.front(); q.pop(); vec1.push_back(t->val); for(Node *cur:t->children){ q.push(cur); } } vec.push_back(vec1); } return vec; } };

 

转载于:https://www.cnblogs.com/Weixu-Liu/p/10776108.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)