广度优先搜索
这题比较简单,使用迭代法很轻松就能解出来。
本题实际上求的是逐层遍历整个二叉树,按照从左至右的顺序依次打印。
这里我们只需要借助队列queue
将每层的节点放入其中,按照先进先出的规则依次访问节点值并放入最终答案res
中即可。
代码
# 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]:
if not root: return []
res = []
queue = collections.deque()
queue.append(root)
while queue:
node = queue.popleft()
res.append(node.val)
if node.left: queue.append(node.left)
if node.right: queue.append(node.right)
return res