把二叉树打印成多行(六十)
题目描述:
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
代码(已在牛客上 AC)
思路: BFS
class Solution {
public:
vector<vector<int> > Print(TreeNode* root) {
if (!root) return {};
queue<TreeNode*> q;
q.push(root);
vector<vector<int>> res;
while (!q.empty()) {
int size = q.size();
vector<int> cur(size);
for (int i = 0; i < size; ++i) {
auto r = q.front();
q.pop();
cur[i] = r->val;
if (r->left) q.push(r->left);
if (r->right) q.push(r->right);
}
res.push_back(cur);
}
return res;
}
};