一 摘要:
- 二叉树遍历(前序,中序,后序,层次)
- python实现
二 正文:
- 定义node数据结构
class
定义TreeNode类,同时定义初始化函数,包括:数值,左节点,右节点
- 构造二叉树
def
构造二叉树,结构如图所示
- 前序遍历
- 根节点出发,先遍历左子树,再遍历右子树
- 打印顺序:1 2 4 5 3 6 7
- 简记:根左右
递归实现
遍历穷尽左子树,回退一层遍历右子树
def
循环实现
入栈顺序与递归顺序相同,始终优先遍历左子树
def
- 中序遍历
- 最左叶节子点出发,->父节点->这个父节点的右子节点
- 打印顺序:4 2 5 1 6 3 7
- 简记:左根右
递归实现
def
循环实现
def
- 后序遍历
- 最左叶节子点出发,->右节点->父节点
- 打印顺序:4 5 2 6 7 3 1
- 简记:左右根
递归实现
def
循环实现
def
- 层次遍历
def
完整代码:
https://github.com/Christmas-Wong/Algorithm/blob/master/binaryTree/treeTraverse.pygithub.com