题目描述
在一个圣诞树的二叉树结构中,每个节点代表一个位置,存储的是该位置装饰的彩灯颜色编号。题目要求我们按从左到右的顺序,返回二叉树每一层的彩灯编号,要求每一层的结果记录于一行。
输入:
- 一个二叉树的根节点
root
,每个节点都有一个整数值val
,表示节点位置上装饰的彩灯颜色编号。
输出:
- 返回一个二维列表,其中每个子列表包含从左到右的每一层节点的值。
解题分析
此题本质上是一个经典的 层次遍历问题(广度优先搜索,BFS)。二叉树的层次遍历就是从根节点开始,依次访问树的每一层,访问每层的节点时,从左到右逐个访问。
我们可以通过 队列 来实现层次遍历。在 BFS 中,队列通常用来存储待访问的节点。首先将根节点放入队列,然后循环执行以下操作:
- 访问当前队列中的所有节点,记录它们的值;
- 将每个节点的左右子节点(如果存在)加入队列;
- 完成一层的遍历后,将这一层的结果保存到结果列表中。