QUESTION
medium
题目描述
给定一个二叉树,返回其按层次遍历的节点值(即逐层地,从左到右访问所有节点)
e.g 给定二叉树: [3,9,20,null,null,15,7]
3
/ \
9 20
/ \
15 7
返回其层次遍历结果:
[
[3],
[9,20],
[15,7]
]
说明
木有
SOLUTION
用一个队列即可,注意每层要记录下当前层的节点数量
方法一
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> res;
if(!root) return res;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()){
int cnt = q.size();
vector<int> row;
while(cnt){
TreeNode* treeNode = q.front();
row.push_back(treeNode->val);
if(treeNode->left) q.push(treeNode->left);
if(treeNode->right) q.push(treeNode->right);
q.pop();
cnt--;
}
res.push_back(row);
}
return res;
}