剑指 Offer 32 - I. 从上到下打印二叉树
说明
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
示例
给定二叉树: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
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
class Solution:
def levelOrder(self, root: TreeNode) -> List[int]:
queue = collections.deque()
ans = []
queue.append(root)
while queue:
node = queue.popleft()
if node is None:break
ans.append(node.val)
left, right = node.left, node.right
if left:
queue.append(left)
if right:
queue.append(right)
return ans