代码随想录day23(2)二叉树:从中序与后序遍历序列构造二叉树(leetcode106)

题目要求:根据一棵树的中序遍历与后序遍历构造二叉树。

思路:408的经典题目,思路和手撕的思路差不多,先从后序中找到根节点,再从中序中找到此节点,然后分割成左右子树,记录一下左右子树的节点个数,再在后序中切割,继续递归处理即可。

按照卡哥的思路,可以分为六步:

1.数组大小为零的话,说明是空节点了。

2.如果不为空,那么取后序数组最后一个元素作为节点元素。

3.在中序中找到此节点,开始分割

4.分割中序数组,分为左右子树

5.分割后续数组,分为左右子树

6.递归

leetcode实战:

代码实现:

相关推荐
自学小白菜20 分钟前
每周刷题 - 第三周 - 双指针专题 - 02
python·算法·leetcode
杜子不疼.34 分钟前
【LeetCode76_滑动窗口】最小覆盖子串问题
算法·哈希算法
ComputerInBook43 分钟前
代数基本概念理解——特征向量和特征值
人工智能·算法·机器学习·线性变换·特征值·特征向量
不能只会打代码1 小时前
力扣--3433. 统计用户被提及情况
java·算法·leetcode·力扣
biter down1 小时前
C++ 解决海量数据 TopK 问题:小根堆高效解法
c++·算法
用户6600676685391 小时前
斐波那契数列:从递归到缓存优化的极致拆解
前端·javascript·算法
初夏睡觉2 小时前
P1055 [NOIP 2008 普及组] ISBN 号码
算法·p1055
程芯带你刷C语言简单算法题2 小时前
Day28~实现strlen、strcpy、strncpy、strcat、strncat
c语言·c++·算法·c
踏浪无痕2 小时前
周末拆解:QLExpress 如何做到不编译就能执行?
后端·算法·架构
一个不知名程序员www2 小时前
算法学习入门--- 树(C++)
c++·算法