题目描述:
使用队列求解层序遍历
先将根节点A入队
根节点A出队,根节点的子节点BC入队
B出队,B的子节点入队
....
依次进行下去,每有一个节点出队,则该节点的子节点按顺序入队,直到队列中的元素全部出队,队列为空
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
queue = [root]
out = []
level_outlist = []
while queue:
queue_len = len(queue)
level_outlist = []
for i in range(queue_len):
node = queue.pop(0)
level_outlist.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
out.append(level_outlist)
return out