当前位置: 首页 > news >正文

算法通过村第6关【青铜】| 如何通过中序和后序遍历恢复二叉树

中序:3 4 8 6 7 5 2 1 10 9 11 15 13 14 12

后序:8 7 6 5 4 3 2 10 15 14 13 12 11 9 1

通过这两个遍历顺序恢复二叉树

首先我们知道中序遍历顺序左中右,后序遍历顺序左右中

第一步:

由后序遍历确定根结点为1 ==> 由中序遍历划分左右子树[3 4 8 6 7 5 2] 1 [10 9 11 15 13 14 12]

第二步:

继续找下层子树根结点:[ 8 7 6 5 4 3 2 ][10 15 14 13 12 11 9 ]1

左子树根结点为2,右子树根结点9,

划分中序:

[3 4 8 6 7 5 2] ==> [3 4 8 6 7 5] 2   

[10 9 11 15 13 14 12] ==> [10] 9 [11 15 13 14 12]

 

第三步:

继续找下层子树根结点:[ 8 7 6 5 4 3] 2 [10 15 14 13 12 11] 9 1

左子树根结点为3,右子树根结点11,

划分中序:

[3 4 8 6 7 5] ==> 3 [ 4 8 6 7 5]    

[ 11 15 13 14 12] ==> 11 [15 13 14 12]

依次类推最后得出图示:

 

http://www.lryc.cn/news/137064.html

相关文章:

  • 高斯牛顿法和LM算法异同示例
  • 奥威BI财务数据分析方案:只做老板想看的
  • opencv进阶19-基于opencv 决策树cv::ml::DTrees 实现demo示例
  • Unity通过TCP/IP协议进行通信
  • 基于VuePress搭建知识库
  • odoo安装启动遇到的问题
  • 【Flink】Flink提交流程
  • 哪种英特尔实感设备适合您?
  • C++11的四种强制类型转换
  • 分布式事务(4):两阶段提交协议与三阶段提交区别
  • React源码解析18(9)------ 实现多节点渲染【修改beginWork和completeWork】
  • 【GUI】基于开关李雅普诺夫函数的非线性系统稳定(Matlab代码实现)
  • Redis 缓存满了怎么办?
  • Grafana 安装配置教程
  • 【Linux】临界资源和临界区
  • 拓扑排序Topological sorting/DFS C++应用例题P1113 杂务
  • 基于jenkins构建生成CICD环境
  • 在线图片怎么转换成PDF?在线图片转换成PDF步骤介绍
  • Linux共享库基础及实例
  • java八股文面试[java基础]——final 关键字作用
  • Redis 分布式锁存在什么问题 ?如何解决 ?
  • n5173b是德科技keysight N5173B信号发生器
  • React源码解析18(10)------ 实现多节点的Diff算法
  • Linux指令篇!
  • Vue2学习笔记のVue组件化编程
  • 跨境电商儿童沙画办理EN71测试标准
  • chrome浏览器账号密码输入框自动填充时背景色不变
  • 【ARM】Day9 cortex-A7核I2C实验(采集温湿度)
  • 【Leetcode】移动零
  • 数据结构入门 — 顺序表详解