LeetCode:889. 根据前序和后序遍历构造二叉树

class Solution {

public:

unordered_map<int,int>valToIndex;

TreeNode* constructFromPrePost(vector<int>& preorder, vector<int>& postorder) {

for(int i=0;i<postorder.size();i++){

valToIndexpostorder\[i]=i;

}

return build(preorder,0,preorder.size()-1,

postorder,0,postorder.size()-1);

}

TreeNode* build(vector<int>& preorder,int preStart,int preEnd,

vector<int>& postorder,int postStart,int postEnd){

if(preStart>preEnd){

return nullptr;

}

if(preStart==preEnd){

return new TreeNode(preorderpreStart);

}

int rootVal=preorderpreStart;

int leftRootVal=preorderpreStart+1;

int index=valToIndexleftRootVal;

int leftsize=index-postStart+1;

//先构造出当前根节点

TreeNode* root=new TreeNode(rootVal);

root->left=build(preorder,preStart+1,preStart+leftsize,

postorder,postStart,index);

root->right=build(preorder,preStart+leftsize+1,preEnd,

postorder,index+1,postEnd-1);

return root;

}

};

相关推荐
2401_8414956429 分钟前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
fqbqrr42 分钟前
2607C++,soui与安卓
c++·soui
fqbqrr4 小时前
2607C++,使用微软detours勾挂工具
c++
爱刷碗的苏泓舒5 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
蓝悦无人机7 小时前
C++基础 — 函数总结
开发语言·c++
烬羽7 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米7 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
WL学习笔记8 小时前
堆(数据结构)
数据结构·
星空露珠8 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua
我不是懒洋洋9 小时前
从零实现一个分布式监控:Prometheus的核心设计
c++