LeetCode 889. 已知前序后序 求二叉树(不唯一)
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. 已知前序后序 求二叉树(不唯一)相关推荐
- LeetCode 105. 已知前序中序 求二叉树
文章目录 1. 题目 2. 解题 1. 题目 类似POJ 2255 Tree Recovery 2. 解题 class Solution {public:TreeNode* buildTree(vec ...
- 二叉树的遍历(前序、中序、后序、已知前中序求后序、已知中后序求前序)
二叉树的遍历(前序.中序.后序.已知前中序求后序.已知中后序求前序) 之前的一篇随笔(二叉树.前序遍历.中序遍历.后序遍历)只对二叉树的遍历进行了笼统的描述,这篇随笔重点对前.中.后序的遍历顺序进 ...
- 二叉树已知前序中序求后序(超简单)(java)
首先解题思路来自b站某高手,思路清奇,请看官先看视频: 无脑秒解!已知先/后序遍历与中序遍历,求后/先序遍历._哔哩哔哩_bilibili大佬轻喷,这个题做很简单,但是想做的快做的准应该没有比这更快的 ...
- 已知前序中序求层序 c语言递归,二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现...
# re: 二叉树的遍历:前序,中序输出有点问题,但是不知道到怎么修改,想请教各位大神 回复 更多评论 #include"stdio.h" #include"mall ...
- LeetCode 106. 已知中序后序 求二叉树
文章目录 1. 题目 2. 解题 2.1 递归 2.2 循环 1. 题目 类似题目LeetCode 105. 已知前序&中序 求二叉树 2. 解题 2.1 递归 递归法,后序最后一个是根节点 ...
- 已知前序中序输出后序(java)返回值是数组
例子: 前序:1, 2, 3, 4, 5, 6(根左右) 中序:3, 2, 4, 1, 6, 5(左根右) 后序:3, 4, 2, 6, 5, 1(左右根) 1.先说根据前序中序求后序,前序总是沿着根 ...
- 前序中序、中序后序以及前序后序构造二叉树
文章目录 前序中序 中序后序 前序后序 定义的树节点如下, class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { ...
- 已知前序中序,求后序
已知二叉树的前序和中序,求其后序 例:前序(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 思路:先序的遍 ...
- POJ 2255 Tree Recovery(已知前序中序,求后序)
1. 题目链接:http://poj.org/problem?id=2255 2. 题目大意: 给定二叉树的前序和中序序列,输出其后序序列 3. 思考过程: 4. AC代码 /*** @descrip ...
最新文章
- mysql数据库访问300ms以上_[Java教程]一张900w的数据表,16s执行的SQL优化到300ms?...
- l2-004 这是二叉搜索树吗? (25分)_什么是 “线段树” ?
- redhat6.下安装配置hadoop环境--单实例版本
- gcc优化的简单说明
- python中的列表生成式_生成器中的列表推导式
- safari浏览器_用了这么多年iPhone才知道,原来?Safari浏览器这么好用
- linux远程hadoop,远程调试Hadoop
- github gists_Eclipse中的Github Gists
- 22岁何同学自制硬核AirDesk!苹果都做不来的超大充电桌,稚晖君点赞
- 加载exe的PE信息并输出相关PE信息的一段c++代码
- 无法运行的愿意_分享减肥食谱一周瘦10斤,你愿意尝试吗?
- 窗体传值 父子窗体传值情况 c# 1231
- mysql高级管理-note
- 究竟云计算就业前景好不好 零基础如何学云计算
- quartus中与modelsim进行联合仿真出现错误error:(vopt-13130)failed to find design unit****
- 云服务器修改dns服务器为阿里云公共dns服务器
- Java后端技术框架
- 2020-11-17
- 演讲稿丨钟义信 弘扬 Simon的源头创新精神开拓“AI”的新理念新路径
- javascript 比较两个json数据是否相等
热门文章
- html如何制作滑块,网页制作html5实现滑块功能之type=quot;rangequot;属性-建站-建站教程-建站方法-米云建站 - 米云问答...
- Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
- 详解mybatis映射配置文件
- 微信小程序-音频播放-wx.createInnerAudioContext() 每次都是重复播放同一条录音
- CodeForces - 796D Police Stations bfs
- 《C语言程序设计》第三章练习与习题答案
- PHP学习之路(二)让我们开始环境搭建(Windows篇)
- 利用openssl来计算sha256哈希值
- qsort与sort
- mysql concat $_mysql concat 的诡异问题