已知数的前序遍历、中序遍历结果,重建二叉树
先回顾一下二叉树的前序、中序和后序:
文章图片
二叉树 前序:VLR
中序:LVR
后序:LRV
假设前序、中序遍历结果如下,开始重建二叉树:
前序序列:[ ABHFDECKG ]
中序序列:[ HBDFAEKCG ]
1、可以确定根节点是A,然后在中序中根据 A 的位置,可以确定 L(HBDF)和 R(EKCG)。取出 A,画出二叉树
文章图片
重建二叉树-1
2、继续根据前序:VLR,中序:LVR 的规则拆分左子树 L(HBDF)。
左子树的前序:B H F D 中序 :H B D F ,确认B 为根节点,H为左节点,DF为右节点
文章图片
重建二叉树-2
3、下面,我们拆分右子树R(EKCG)
右子树 前序:E C K G; 中序: E K C G
我们可以根据前序,确认E为根节点,没有左节点,只有右节点(KCG)
文章图片
重建二叉树-3
4、继续拆分右子树
右子树前序: C K G; 中序: K C G
我们可以根据前序,确认C为根节点,左节点K,右节点 G
到此二叉树重建完成。
文章图片
重建二叉树-4
【已知数的前序遍历、中序遍历结果,重建二叉树】(例子参考自百度经验)
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量