注意:
可以不定义结构体(定义layer来记录层次)
做法是:队列q只存树中一层的结点,这样代码可以得到大大简化
class Solution {
public:
vector> levelOrder(TreeNode* root) {
vector> ans;
if (!root) return ans;
queue q;
q.push(root);
while (!q.empty()) {
int q_size = q.size();
ans.push_back(vector());
for (int i = 0; i < q_size; ++i) {
TreeNode* front = q.front();
q.pop();
ans.back().push_back(front->val);
if (front->left != nullptr) q.push(front->left);
if (front->right != nullptr) q.push(front->right);
}
}
return ans;
}
};



