题目:
题源:LeetCode
题解:
直接看代码就能明白,此代码参考LeetCode大佬题解,涉及动态数组和队列的使用(好久没用忘记如何用代码实现)
代码:
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
if(root==NULL) return {};
vector<vector<int>>res;//存储输出结果
queue<TreeNode *>q;//保存节点的队列
q.push(root);
while(!q.empty()){
int n=q.size();
vector<int>temp;//存储每层的遍历结果
for(int i=0;i<n;i++){
TreeNode *t=q.front();
q.pop();
temp.push_back(t->val);//将当前队列每个元素的值保存在临时动态数组当中
if(t->left) q.push(t->left);
if(t->right) q.push(t->right);
}
res.push_back(temp);
}
return res;
}
};