层序遍历,每次层的输出是是一个一维数组,整个二叉树的输出结果是二维数组
BFS遍历,依托于队列结构,每次在根节点出栈的时候,将其值加在结果列表中,然后将他的左右孩子节点入队列。
层序遍历相对于BFS,需要知道每一层有多少个节点。
因此,我们需要稍微修改一下代码,在每一层遍历开始前,先记录队列中的结点数量 nn(也就是这一层的结点数量),然后一口气处理完这一层的 n 个结点。参考
class Solution:def levelOrder(self, root: TreeNode):r = []if not root:return rquee = [root]while quee:temp = []k = len(quee)# 当前层右多少个节点for i in range(k):root = quee.pop(0)temp.append(root.val)if root.left:quee.append(root.left)if root.right:quee.append(root.right)r.append(temp)return r