二叉树是每个节点最多有两个子树的树结构。二叉树的遍历有深度优先遍历(Depth-First-Search,DFS)和广度优先遍历(Breadth-First-Search,BFS)两类。深度优先遍历包括前序遍历、中序遍历、后续遍历;广度优先遍历也就是二叉树层序遍历。访问节点的顺序如下。
前序遍历:根节点,左子节点,右子节点
中序遍历:左子节点,根节点,右子节点
后序遍历:左子节点,右子节点,根节点
层序遍历:从上到下,从左至右依次遍历节点
以下将给出这层序遍历的python实现,分别对应leetcode的以下题目。前序遍历、中序遍历、后续遍历的python实现可查找上一篇博客
二叉树节点类的定义
# Definition for a binary tree node.
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
例:二叉树的结构
1
/ \
2 3
/ \ / \
14 5 6 10
层次遍历为[[1], [2, 3], [14, 5