宽度优先搜索(BFS)需要用到队列(Queue),在面试时推荐使用Py3的Deque。
问题:
二叉树的层次遍历
代码:
from collections import deque #导入模块
class Solution:
"""
@param root: A Tree
@return: Level order a list of lists of integer
"""
def levelOrder(self, root):
if root is None:
return []
queue = deque([root])
result = []
while queue:
level = []
for _ in range(len(queue)):
node = queue.popleft()
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(level)
return result