使用队列先进先出,入队采用前序遍历的形式,最后结果采用二维数组的形式,一层一层的出队,每一层为一个一维数组形式。
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
queue<TreeNode*> que;
vector<vector<int>> result;
if(root!=nullptr)que.push(root);
while(!que.empty()){
int queSize = que.size(); //待出队的大小
vector<int> v;
for(int i=0;i<queSize;++i){ //出队一层并把下一层入队
TreeNode* node = que.front();
que.pop();
v.push_back(node->val);
if(node->left)que.push(node->left);
if(node->right)que.push(node->right);
}
result.push_back(v);
}
return result;
}
};