题目
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树: [3,9,20,null,null,15,7]
,
https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/
思路
用队列先进先出的特点实现层次遍历,也就是广度优先搜索dfs
代码
class Solution:
def levelOrder(self, root: TreeNode) -> List[int]:
# 二叉树的层次遍历bfs
if not root:
return []
ans = []
queue = [root]
while queue:
# tmp_queue = queue[:]
for node in queue[:]:
ans.append(node.val)
queue.pop(0)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
return ans