1. 程式人生 > >劍指 Offer -- 把二叉樹列印成多行(六十)

劍指 Offer -- 把二叉樹列印成多行(六十)

把二叉樹列印成多行(六十)

題目描述:

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。

程式碼(已在牛客上 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; } };