一棵圣诞树记作根节点为 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; } };
|