通过前序遍历和中序遍历结果重构二叉树

重建二叉树

http://www.nowcoder.com/questionTerminal/8a19cbe657394eeaac2f6ea9b0f6fcf6

前序,中序,后序,都是指二叉树中,什么时候遍历根节点,左右孩子都是先左后右遍历。

解题的突破口有下面两点
1.前序遍历的结果中,根节点肯定是在左右孩子之前的;
2.中序遍历的结果中,根节点的左边部分肯定是左子树的,右边部分是右子树的。
根据这两点我们可以知道,前序遍历的第一个节点就是根节点。然后再中序遍历中找到这个节点的位置,然后左边的则是左子树,右边的就是右子树。
将左右子树用递归的形式进行构建。
值得注意的是,找子树的根节点,可以直接比较每一个节点在前序遍历中的位置,位置最靠前的则是子树的根节点。

全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-16 18:05
何尝不是一种学历歧视呢
码农索隆:楼主明确拒绝,并说明拒绝原因了,这hr倒是挺忠心护主的
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务