博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode – Refresh – Construct Binary Tree from Inorder and Preorder Traversal
阅读量:6402 次
发布时间:2019-06-23

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

Only different with preorder and postorder is that the root start from the beginning for preorder.

1 /** 2  * Definition for binary tree 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     TreeNode *getTree(vector
&iv, vector
&pv, int ist, int ied, int pst, int ped) {13 if (ist > ied) return NULL;14 int current = -1, len = 0;15 for (int i = ist; i <= ied; i++) {16 if (pv[pst] == iv[i]) {17 current = i;18 break;19 }20 }21 len = current - ist;22 TreeNode *root = new TreeNode(pv[pst]);23 root->left = getTree(iv, pv, ist, current-1, pst+1, pst+len);24 root->right = getTree(iv, pv, current+1, ied, pst+len+1, ped);25 }26 27 TreeNode *buildTree(vector
&preorder, vector
&inorder) {28 if (inorder.size() == 0 || inorder.size() != preorder.size()) return NULL;29 return getTree(inorder, preorder, 0, inorder.size()-1, 0, preorder.size()-1);30 }31 };

 

转载于:https://www.cnblogs.com/shuashuashua/p/4349276.html

你可能感兴趣的文章
大数据量下的集合过滤—Bloom Filter
查看>>
Wannafly挑战赛9
查看>>
《企业云桌面实施》-小技巧-02-使用ISO光驱安装esxi6.5
查看>>
Python从菜鸟到高手(4):导入Python模块
查看>>
实战:Windows 2008 WDS使用参考计算机创建安装映像
查看>>
利用缓存来提高网站的性能(Caching to Improve the Performance of Your Website )
查看>>
Android应用程序注册广播接收器(registerReceiver)的过程分析
查看>>
对代理ARP技术的误读、无法完成代理ARP实验的故障分析
查看>>
详解网络流量监控
查看>>
可视化日志分析工具Gltail的安装与使用
查看>>
关于Segmentation fault (core dumped)几个简单问题
查看>>
经典SQL语句大全(基础篇)
查看>>
HTML5 Canvas眨眼睛动画
查看>>
C-C和指针作业题(第一章)
查看>>
[推荐]网店代销的卖家,你的宝贝名称修改了吗?
查看>>
Android NDK JNI C++ <7> eg
查看>>
jQuery打造智能提示插件二(可编辑下拉框)
查看>>
[Python] Python 之 function, unbound method 和 bound method
查看>>
希尔排序
查看>>
改变随机数中一些值的概率
查看>>