Given the root of a binary tree, return the level order traversal of its nodes’ values. (i.e., from left to right, level by level).
Example 1:
Input: root = [3,9,20,null,null,15,7]
Output: [[3],[9,20],[15,7]]
Example 2:
Input: root = [1]
Output: [[1]]
Example 3:
Input: root = []
Output: []
Constraints:
The number of nodes in the tree is in the range [0, 2000].
-1000 <= Node.val <= 1000
1、层序遍历二叉树
2、每一层都存入到一个vector中
3、将每一层加入到vector中
#include <bits/stdc++.h>
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
if(root==NULL){
vector<vector<int>> res;
return res;
}
vector<vector<int>> res;
queue<TreeNode* > que;
que.push(root);
while(!que.empty()){
TreeNode *p;
vector<int> temp;
int num = que.size();
for(int i=0; i<num; i++){
p = que.front();
temp.push_back(p->val);
que.pop();
if(p->left!=NULL){
que.push(p->left);
}
if(p->right!=NULL){
que.push(p->right);
}
}
res.push_back(temp);
}
return res;
}
};