LintCode 71 中序遍历和后序遍历树构造二叉树
来源:互联网 发布:外卖软件项目计划书 编辑:程序博客网 时间:2024/06/04 18:57
题目:buildTree
要求:
根据中序遍历和后序遍历树构造二叉树
注意事项
你可以假设树中不存在相同数值的节点
样例:
给出树的中序遍历: [1,2,3] 和后序遍历: [1,3,2]
返回如下的树:
2 / \1 3
算法要求:
无
解题思路:
看这里
算法如下:
vector<int> inorder; vector<int> postorder; TreeNode *build(int startA, int endA, int startB, int endB) { if (startA > endA || startB > endB) { return NULL; } TreeNode *root = new TreeNode(postorder[endA]); int headA = endA;//根节点在后序的位置 int headB = endB;//根节点在中序的位置 while (postorder[headA] != inorder[headB]) { headB--; } root->left = build(startA, headB - startB + startA - 1, startB, headB - 1); root->right = build(headB - startB + startA, endA - 1, headB + 1, endB); return root;// } TreeNode *buildTree(vector<int> &inorder, vector<int> &postorder) { // write your code here this->inorder = inorder; this->postorder = postorder; return build(0, postorder.size() - 1, 0, inorder.size() - 1); }
0 0
- LintCode 71 中序遍历和后序遍历树构造二叉树
- lintcode-中序遍历和后序遍历树构造二叉树-72
- LintCode(72)中序遍历和后序遍历树构造二叉树
- LintCode 72-中序遍历和后序遍历树构造二叉树
- lintcode---中序遍历和后序遍历树构造二叉树
- [LintCode] 中序遍历和后序遍历树构造二叉树 Construct Binary Tree from Inorder and Postorder Traversal
- lintcode construct-binary-tree-from-inorder-and-postorder-traversal 中序遍历和后序遍历树构造二叉树
- Lintcode前序遍历和中序遍历树构造二叉树
- lintcode- 前序遍历和中序遍历树构造二叉树-73
- LintCode-剑指Offer-(73)前序遍历和中序遍历树构造二叉树
- lintcode,前序遍历和中序遍历树构造二叉树
- LintCode 73- 前序遍历和中序遍历树构造二叉树
- LintCode 73 前序遍历和中序遍历树构造二叉树
- 前序遍历和中序遍历树构造二叉树-LintCode
- [LintCode]73.前序遍历和中序遍历树构造二叉树
- LintCode 前序遍历和中序遍历树构造二叉树
- LINTCODE——前序遍历和中序遍历树构造二叉树
- lintcode---前序遍历和中序遍历树构造二叉树
- 0426-CSS三大特性之优先级
- 深度学习中的Data Augmentation方法(转)基于keras
- 怎么解决form表单中 disable属性不能提交的问题,form表单获得不了某个参数
- TK1学习笔记二:安装CUDA
- 08-S3C2440驱动学习(二)嵌入式linux-input子系统分析与应用
- LintCode 71 中序遍历和后序遍历树构造二叉树
- 一种服务器端名片识别
- Java泛型_自定义泛型方法
- 代理模式
- [BZOJ4336][BJOI2015]骑士的旅行(树链剖分+线段树+multiset+归并)
- LintCode 73 前序遍历和中序遍历树构造二叉树
- 不是我不会演戏
- OpenCV(学习笔记8)-OpenCV模块介绍
- Mongodb重难点解析(一、基本理解与操作)