从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
思路:每层要单独打印到一行,所以在开始遍历当前层的时候记录当前层的节点数量。每遍历完一层,把结果存到二维数组中
vector<vector<int>> levelOrder(TreeNode* root) {
if(!root)return {};
vector<vector<int>>res;
queue<TreeNode*>que;
que.push(root);
while(!que.empty()){
int num=que.size();
vector<int>tmp;
for(int i=0;i<num;i++){
root=que.front();
que.pop();
tmp.push_back(root->val);
if(root->left)que.push(root->left);
if(root->right)que.push(root->right);
}
res.push_back(tmp);
}
return res;
}