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

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

将题目中的例子拿到这里来,根据前序遍历(根-左-右)的结果{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-22 11:35
门头沟学院 Java
谁知道这是为什么吗,有没有懂的佬给讲讲
理智的小饼干又熬夜了:鹅打电话问我参不参加后台提前批,说是有的但还没放官网
点赞 评论 收藏
分享
嗨害嗨我来了:你跟他说开迈巴赫呢,一个月好几万,让学弟尝尝一点小小的社会险恶
点赞 评论 收藏
分享
DKS233:(1)专业技能:Java8也太旧了,最少也要了解到JDK17吧,可以参考现在SpringBoot支持的Java最低版本,熟悉mysql基本理论具体指啥,是锁这种具体原理还是分库分表这些业务场景,spring这些专业词汇,大小写要写对(全篇简历都有这个问题,显得不严谨),熟悉使用框架进行业务开发就别写了,如果要写,起码要写到框架原理部分吧,比如aop,启动原理什么的,springcloud具体指哪些模块呢,写清楚,网关还是鉴权还是什么,“改造”没必要写吧,你直接说用springcloud开发的不就行了(2)项目经历:首先格式就有大问题,时间怎么能换行呢,调整一下,响应速度那个,如果指的是将部分数据从其他数据库转到redis的提升就别写了,因为这个不算难点,redis可以写写分布式这些,比如容灾怎么实现的,数据库同步怎么做的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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