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

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

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

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

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

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

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

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

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

6.递归

leetcode实战:

代码实现:

相关推荐
会编程的土豆12 小时前
【数据结构与算法】 拓扑排序
数据结构·c++·算法
zth41302113 小时前
SegmentSplay‘s Super STL(v2.2)
开发语言·c++·算法
数据知道13 小时前
claw-code 源码详细分析:Bootstrap Graph——启动阶段图式化之后,排障与扩展为什么会变简单?
前端·算法·ai·bootstrap·claude code·claw code
Kel13 小时前
从Prompt到Response:大模型推理端到端核心链路深度拆解
人工智能·算法·架构
Felven13 小时前
D. Matryoshkas
算法
17(无规则自律)13 小时前
DFS连通域统计:岛屿数量问题及其变形
c++·算法·深度优先
笨笨饿13 小时前
34_数据结构_栈
c语言·开发语言·数据结构·人工智能·嵌入式硬件·算法
im_AMBER13 小时前
Leetcode 152 被围绕的区域 | 岛屿数量
数据结构·算法·leetcode·深度优先·广度优先·图搜索算法
吕司14 小时前
LeetCode Hot Code——最大子数组和
数据结构·算法·leetcode
海清河晏11114 小时前
数据结构 | 单链表
数据结构·unity·dreamweaver