题目

题目地址:

https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/

题目描述:

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

例如: 给定二叉树: [3,9,20,null,null,15,7],

  1. 3

/ \

9 20

  1. / \
  2. 15 7

返回:[3,9,20,15,7]

思路

广度优先搜索
使用队列辅助

测试用例

程序

广度优先搜索(队列)

时间复杂度
空间复杂度

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

from collections import deque

class Solution:

    def __init__(self):
        self.queue = deque()
        self.result = []

    def levelOrder(self, root: TreeNode) -> List[int]:
        if not root:
            return []
        self.queue.append(root)
        while self.queue:
            node = self.queue.popleft()
            self.result.append(node.val)
            if node.left:
                self.queue.append(node.left)
            if node.right:
                self.queue.append(node.right)
        return self.result