重建二叉树
来源:互联网 发布:mac切换语言快捷键 编辑:程序博客网 时间:2024/06/05 08:40
class Solution {public: struct TreeNode* reConstructBinaryTree(vector<int> pre, vector<int> in) { return rebulidBinaryTree(pre, in); } static TreeNode* rebulidBinaryTree(vector<int>pre, vector<int>in){ if (pre.size() == 0 || in.size() == 0){ return NULL; } //获取根节点 TreeNode* root = new TreeNode(pre[0]); //查找根节点在中序遍历中的位置 int cur = -1; for (int i = 0; i < in.size(); i++){ if (pre[0] == in[i]){ cur = i; break; } } if (cur == -1){ return NULL; } //构建左子树 vector<int> lin; for (int i = 0; i < cur; i++){ lin.push_back(in[i]); } vector<int> lpre; for (int i = 1; i < lin.size() + 1; i++){ lpre.push_back(pre[i]); } root->left = rebulidBinaryTree(lpre, lin); //构建右子树 vector<int> rin; for (int i = cur+1; i < in.size(); i++){ rin.push_back(in[i]); } vector<int> rpre; for (int i = 1+lin.size(); i < pre.size() ; i++){ rpre.push_back(pre[i]); } root->right = rebulidBinaryTree(rpre, rin); return root; }};
阅读全文
0 0
- 3.9重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 二叉树的重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 管道基础
- jsp+Servlet实现上传
- codeblocks中怎么改变字体大小啊?
- Java多线程复习与巩固(三)--线程同步
- 51Nod--1015 水仙花数
- 重建二叉树
- 自己动手编写交叉编译工具链
- python简介
- 【CSS修改下拉选框select的默认样式】
- CSS中的相对定位和绝对定位
- Thrift源码解析(二)序列化协议
- maven命令整理
- 分布式事务
- a标签的4个套路(什么时候用id什么时候用name)