博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指Offer:重建二叉树
阅读量:5216 次
发布时间:2019-06-14

本文共 1113 字,大约阅读时间需要 3 分钟。

题目描述

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。

 

struct TreeNode{ 	int val;	TreeNode* left;	TreeNode* right;	TreeNode(int x):val(x),left(NULL),right(NULL){} };  class Solution{public:	TreeNode* reConstructBinaryTree(vector
pre,vector
vin) { TreeNode* root=reConstructBinaryTreeOne(pre,0,pre.size()-1,vin,0,vin.size()-1); return root; } //前序遍历{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}private: TreeNode* reConstructBinaryTreeOne(vector
pre,int startPre,int endPre,vector
vin,int startIn,int endIn) { if(startPre>endPre||startIn>endIn) return nullptr; TreeNode* root=new TreeNode(pre[startPre]); for(int i=startIn;i<=endIn;i++) if(vin[i]==pre[startPre]){ root->left=reConstructBinaryTreeOne(pre,startPre+1,startPre+i-startIn,vin,startIn,i-1); root->right=reConstructBinaryTreeOne(pre,i-startIn+startPre+1,endPre,vin,i+1,endIn); break; } return root; }};

 

恭喜你通过本题

运行时间:8ms

占用内存:700

 

转载于:https://www.cnblogs.com/k5bg/p/11098045.html

你可能感兴趣的文章
用UL标签+CSS实现的柱状图
查看>>
mfc Edit控件属性
查看>>
Linq使用Join/在Razor中两次反射取属性值
查看>>
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>
Java实现二分查找
查看>>
优秀员工一定要升职吗
查看>>
[LintCode] 462 Total Occurrence of Target
查看>>
springboot---redis缓存的使用
查看>>
架构图-模型
查看>>
sql常见面试题
查看>>
jQuery总结第一天
查看>>
Java -- Swing 组件使用
查看>>
Software--Architecture--DesignPattern IoC, Factory Method, Source Locator
查看>>
poj1936---subsequence(判断子串)
查看>>
黑马程序员_Java基础枚举类型
查看>>
【redis4 】
查看>>
[ python ] 练习作业 - 2
查看>>
一位90后程序员的自述:如何从年薪3w到30w!
查看>>
在.net core上使用Entity FramWork(Db first)
查看>>
System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集...
查看>>