1 Star 0 Fork 0

唐梓迅/leetcode题解

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
.LeetCode 106 874 Bytes
一键复制 编辑 原始数据 按行查看 历史
唐梓迅 提交于 2022-11-18 15:25 . 从中序和后序遍历构建二叉树
class Solution {
public:
int rootid = 0;
unordered_map<int,int> hashmap;
TreeNode* preorder(int i_left,int i_right,
vector<int>& inorder, vector<int>& postorder)
{
if(i_left > i_right)
return nullptr;
int root_val = postorder[rootid];
TreeNode* root = new TreeNode(root_val);
int tmp = hashmap[root_val];
rootid--;
root->right = preorder(tmp+1,i_right,inorder,postorder);
root->left = preorder(i_left,tmp-1,inorder,postorder);
return root;
}
TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {
rootid = (int)postorder.size()-1;
int id = 0;
for(auto& num : inorder)
{
hashmap[num] = id++;
}
return preorder(0,(int)inorder.size()-1,inorder,postorder);
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/Tang-CMer/leetcode-problem-solving.git
git@gitee.com:Tang-CMer/leetcode-problem-solving.git
Tang-CMer
leetcode-problem-solving
leetcode题解
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385