1. 题目

返回与给定的前序和后序遍历匹配的任何二叉树。

pre 和 post 遍历中的值是不同的正整数。

示例:输入:pre = [1,2,4,5,3,6,7], post = [4,5,2,6,7,3,1]
输出:[1,2,3,4,5,6,7]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-postorder-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题



class Solution {public:TreeNode* constructFromPrePost(vector<int>& pre, vector<int>& post) {unordered_map<int,int> m;for(int i = 0; i < pre.size(); ++i)m[pre[i]] = i;return bt(pre,0,pre.size()-1,post,0,post.size()-1,m);}TreeNode* bt(vector<int>& pre,int preS, int preE,vector<int>& post, int postS, int postE, unordered_map<int,int> &m){if(preS > preE)return NULL;if(preS == preE){return new TreeNode(pre[preS]);}TreeNode *root = new TreeNode(pre[preS]);int leftlen = m[post[postE-1]]-preS-1;int rightlen = preE-m[post[postE-1]]+1;root->left = bt(pre,preS+1,preS+leftlen,post,postS,postS+leftlen-1,m);root->right = bt(pre,m[post[postE-1]],preE,post,postE-rightlen,postE-1,m);return root;}
};

LeetCode 889. 已知前序后序 求二叉树(不唯一)相关推荐

  1. LeetCode 105. 已知前序中序 求二叉树

    文章目录 1. 题目 2. 解题 1. 题目 类似POJ 2255 Tree Recovery 2. 解题 class Solution {public:TreeNode* buildTree(vec ...

  2. 二叉树的遍历(前序、中序、后序、已知前中序求后序、已知中后序求前序)

    二叉树的遍历(前序.中序.后序.已知前中序求后序.已知中后序求前序)   之前的一篇随笔(二叉树.前序遍历.中序遍历.后序遍历)只对二叉树的遍历进行了笼统的描述,这篇随笔重点对前.中.后序的遍历顺序进 ...

  3. 二叉树已知前序中序求后序(超简单)(java)

    首先解题思路来自b站某高手,思路清奇,请看官先看视频: 无脑秒解!已知先/后序遍历与中序遍历,求后/先序遍历._哔哩哔哩_bilibili大佬轻喷,这个题做很简单,但是想做的快做的准应该没有比这更快的 ...

  4. 已知前序中序求层序 c语言递归,二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现...

    # re: 二叉树的遍历:前序,中序输出有点问题,但是不知道到怎么修改,想请教各位大神  回复  更多评论 #include"stdio.h" #include"mall ...

  5. LeetCode 106. 已知中序后序 求二叉树

    文章目录 1. 题目 2. 解题 2.1 递归 2.2 循环 1. 题目 类似题目LeetCode 105. 已知前序&中序 求二叉树 2. 解题 2.1 递归 递归法,后序最后一个是根节点 ...

  6. 已知前序中序输出后序(java)返回值是数组

    例子: 前序:1, 2, 3, 4, 5, 6(根左右) 中序:3, 2, 4, 1, 6, 5(左根右) 后序:3, 4, 2, 6, 5, 1(左右根) 1.先说根据前序中序求后序,前序总是沿着根 ...

  7. 前序中序、中序后序以及前序后序构造二叉树

    文章目录 前序中序 中序后序 前序后序 定义的树节点如下, class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { ...

  8. 已知前序中序,求后序

    已知二叉树的前序和中序,求其后序 例:前序(A B D G H C E I F J ) 中序(G D H B A E I C J F) 其后序为:G H D B I E J F C A 思路:先序的遍 ...

  9. POJ 2255 Tree Recovery(已知前序中序,求后序)

    1. 题目链接:http://poj.org/problem?id=2255 2. 题目大意: 给定二叉树的前序和中序序列,输出其后序序列 3. 思考过程: 4. AC代码 /*** @descrip ...

最新文章

  1. mysql数据库访问300ms以上_[Java教程]一张900w的数据表,16s执行的SQL优化到300ms?...
  2. l2-004 这是二叉搜索树吗? (25分)_什么是 “线段树” ?
  3. redhat6.下安装配置hadoop环境--单实例版本
  4. gcc优化的简单说明
  5. python中的列表生成式_生成器中的列表推导式
  6. safari浏览器_用了这么多年iPhone才知道,原来?Safari浏览器这么好用
  7. linux远程hadoop,远程调试Hadoop
  8. github gists_Eclipse中的Github Gists
  9. 22岁何同学自制硬核AirDesk!苹果都做不来的超大充电桌,稚晖君点赞
  10. 加载exe的PE信息并输出相关PE信息的一段c++代码
  11. 无法运行的愿意_分享减肥食谱一周瘦10斤,你愿意尝试吗?
  12. 窗体传值 父子窗体传值情况 c# 1231
  13. mysql高级管理-note
  14. 究竟云计算就业前景好不好 零基础如何学云计算
  15. quartus中与modelsim进行联合仿真出现错误error:(vopt-13130)failed to find design unit****
  16. 云服务器修改dns服务器为阿里云公共dns服务器
  17. Java后端技术框架
  18. 2020-11-17
  19. 演讲稿丨钟义信 弘扬 Simon的源头创新精神开拓“AI”的新理念新路径
  20. javascript 比较两个json数据是否相等

热门文章

  1. html如何制作滑块,网页制作html5实现滑块功能之type=quot;rangequot;属性-建站-建站教程-建站方法-米云建站 - 米云问答...
  2. Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
  3. 详解mybatis映射配置文件
  4. 微信小程序-音频播放-wx.createInnerAudioContext() 每次都是重复播放同一条录音
  5. CodeForces - 796D Police Stations bfs
  6. 《C语言程序设计》第三章练习与习题答案
  7. PHP学习之路(二)让我们开始环境搭建(Windows篇)
  8. 利用openssl来计算sha256哈希值
  9. qsort与sort
  10. mysql concat $_mysql concat 的诡异问题