劍指 Offer -- 把二叉樹列印成多行(六十)
阿新 • • 發佈:2019-01-11
把二叉樹列印成多行(六十)
題目描述:
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
程式碼(已在牛客上 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;
}
};