本题又是对二叉树这种数据结构的考察,题目的核心是要通过二叉树的前序遍历和中序遍历结果还原二叉树。

这要求我们对二叉树的遍历有着深刻的理解,这两种遍历方式特点如下:
- 前序遍历:根-左-右;先输入二叉树根结点的值,然后前序遍历左子树,再前序遍历右子树;
- 中序遍历:左-根-右;先中序遍历左子树,然后输出根节点的值,再中序遍历右子树;

将题目中的例子拿到这里来,根据前序遍历(根-左-右)的结果{1,2,4,7,3,5,6,8},我们可以知道二叉树的根节点是1。再回到中序遍历中,我们可以看出,以1为分界线:
- 中序遍历中,左边{4,7,2}是左子树的中序遍历,右边{5,3,8,6}是右子树的中序遍历;
- 前序遍历中,{2,4,7}是左子树的前序遍历,{3,5,6,8}是右子树的前序遍历。

在前面的二叉树算法中,我们记得递归是二叉树算法中不可忽略的一部分,这道题也不例外。那么在算法中,我们只要找到root所在的位置,构造出左右子树的前序和中序遍历数组,然后递归构造而擦函数即可。

😄
2020-08-06
在牛客打卡9天,今天学习:刷题 1 道/代码提交 1 次
全部评论

相关推荐

07-09 15:55
门头沟学院 Java
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 10:39
一个证都没 我能填什么
程序员小白条:别人有,你为什么没有,还是这个道理,社会就是比较,竞争,淘汰,你要安逸,那么就要做好淘汰的准备
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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