一棵圣诞树记作根节点为 root 的二叉树,节点值为该位置装饰彩灯的颜色编号。请按照从左到右的顺序返回每一层彩灯编号,每一层的结果记录于一行。

示例 1:

**输入:**root = [8,17,21,18,null,null,6]
输出:[[8],[17,21],[18,6]]

提示:

节点总数 <= 1000

层序遍历时,一次输出一层

只需要在每次出队时把队列清空,然后再放入下一层,

因为每次出队时可以确定出队多少元素,所以可以同时出队入队

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public:
vector<vector<int>> decorateRecord(TreeNode *root) {
vector<vector<int>> ans;
queue<TreeNode *> mid;
if (root != nullptr)
mid.push(root);
while (!mid.empty()) {
vector<int> midAns;
for (int i = mid.size(); i > 0; i--) {
midAns.push_back(mid.front()->val);
if (mid.front()->left != nullptr)
mid.push(mid.front()->left);
if (mid.front()->right != nullptr)
mid.push(mid.front()->right);
mid.pop();
}
ans.push_back(midAns);
}
return ans;
}
};