广度优先遍历:
从上往下,从左到右
层次遍历
前序遍历:中->左->右
中序遍历:左->中->右
后序遍历:左->右->中
已知序列
前序1 2 3 4 5 6 7 8 10 11 12 13 15 14
中序3 4 8 6 7 5 2 1 10 9 11 15 13 14 12
后序8 7 6 5 4 3 2 10 15 14 13 12 11 9 1
前中序列恢复二叉树(左子树)(
1为根节点 2 3 4 5 6 7 8 左子树 9 10 11 12 13 15 14右子树
每次都先找最小的值,最小的值为中间节点。
2 【3 4 5 6 8 7】 确定中节点 【 3 4 8 6 7 5 】2
中 左或右 左 中 右(null)
3【 4 5 6 8 7 】 确定中节点 3【4 8 6 7 5】
中 左或右 左null 中 右
4 【5 6 8 7 】 确定中节点 4【 8 6 7 5】
中 左或右 左null 中 右
5【 6 8 7】 确定中节点 【 8 6 7】 5
中 左或右 左 中 右null
【6 8】 7 【8 6】 7
既找不到最小值,也不能确定具体位置,直接进行最后的排序
5
6
8 7
中后序列回复二叉树(左子树)
中序 3 4 8 6 7 5 2
后序 8 7 6 5 4 3 2
每次都先找最小的值,最小的值为中间节点。
【3 4 8 6 7 5】 2 确定中间节点 【8 7 6 5 4 3 】2
左 中 右 左或右 中
3 【4 8 6 7 5】 确定中间节点 【 8 7 6 5 4 】3
左中 右 左或右 中
4 【8 6 7 5】 确定中间节点 【 8 7 6 5】 4
左 中 右 左或右 中
【8 6 7】 5 确定中间节点 【 8 7 6】 5
左 中 右 左或右 中
8 6 7 8 7 6
直接进行最后的排序
5
6
8 7