题意
给定一个 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; } };