思路:
创建一个队列,创建一个vector二维数组 、创建一个vector临时一维数组
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
//创建二维数组
vector<vector<int>>st;
//创建队列
queue<TreeNode*>vt;
//先把root放入队列
if(root!=nullptr)
{
vt.push(root);
}
while(!vt.empty())
{
//创建一个临时一维数组
vector<int>qt;
int size=vt.size();//记录队列总的数据个数
for(int i=0;i<size;i++)
{
TreeNode*x=vt.front();
qt.push_back(x->val);
vt.pop();
//判断左右子树
if(x->left!=nullptr) vt.push(x->left);
if(x->right!=nullptr) vt.push(x->right);
}
//放完之后,将一维数组放入二维数组中
st.push_back(qt);
}
//最后返回二维数组
return st;
}
};
如有错误,多多指教!