这道题用到了宽搜的思路
1.创造答案数组,和宽搜的队列
2.如果根节点为空,直接返回即可
3.宽搜的步骤
1.将根节点入列
2.while循环为队列的中元素的数量(遍历一层中的所有元素)
3.记录队列里面的节点的个数k,进行k次扩展,创造个答案数组存入答案
4.将扩展的点入队列
4.将答案数组入答案数组。
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>>res;
queue<TreeNode*>q;
if(root)q.push(root);
while(q.size()){
int k=q.size();
vector<int>path;
while(k--){
auto t=q.front();
q.pop();
path.push_back(t->val);
if(t->left)q.push(t->left);
if(t->right)q.push(t->right);
}
res.push_back(path);
}
return res;
}
};