就是 bfs 的实现
每次 queue 中存在的就是这层的元素,所以要预先记录 size
然后遍历到这个元素后把它下一层的元素加进去
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {queue<TreeNode*> q;vector<vector<int>> ans;if (!root) {return ans;}q.emplace(root);while (!q.empty()) {int n = q.size();vector<int> tmp(n);for (int i = 0; i < n; i++) {auto u = q.front();q.pop();tmp[i] = u->val;if (u->left) q.emplace(u->left);if (u->right) q.emplace(u->right);}ans.emplace_back(tmp);}return ans;}
};
