Construct Binary Tree from Preorder and Inorder Traversal 根据先序和中序序列生成二叉树(重重)
来源:互联网 发布:四级行政区划数据 编辑:程序博客网 时间:2024/06/05 07:28
题目:
点击打开链接
解答:
递归求解,先序递归,递归时,先序遍历的序列一定是按先后顺序访问。
首先建立根节点,然后将中序序列分成两组,分别建立左右子树。
代码:
class Solution {public:TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) {int pos = 0;TreeNode *root = search(preorder, pos, inorder, 0, inorder.size() - 1);return root;}private:TreeNode *search(vector<int> &preorder, int &pos, vector<int> &inorder, int begin, int end){if (begin > end)return NULL;TreeNode *root = new TreeNode(preorder[pos]);int mid = find(preorder[pos], inorder, begin, end);//先序表后移一位++pos;//递归建立左右子树root->left = search(preorder, pos, inorder, begin, mid - 1);root->right = search(preorder, pos, inorder, mid + 1, end);return root;}//寻找根节点在中序表中的位置,以此将中序表分成两组int find(int target, vector<int> &inorder, int begin, int end){for (int i = begin; i <= end; i++){if (target == inorder[i])return i;}}};
0 0
- Construct Binary Tree from Preorder and Inorder Traversal 根据先序和中序序列生成二叉树(重重)
- Construct Binary Tree from Inorder and Postorder Traversal 根据中序和后序序列生成二叉树(重重)
- 【LeetCode】Construct Binary Tree from Preorder and Inorder Traversal 根据先序序列和中序序列恢复二叉树
- 根据前序和中序序列重建二叉树 Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal-先序和中序构造树
- Construct Binary Tree from Preorder and Inorder Traversal 根据前序遍历和中序遍历构造二叉树
- Construct Binary Tree from Preorder and Inorder Traversal 前序和中序重建二叉树
- 105.leetcode Construct Binary Tree from Preorder and Inorder Traversal(medium)[先序、中序构造二叉树]
- Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal 先序和中序中恢复二叉树 解题报告
- LeetCode OJ 之 Construct Binary Tree from Preorder and Inorder Traversal (由二叉树的前序和中序序列构造二叉树)
- 根据中序和后序序列重建二叉树 Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode(Construct Binary Tree from Preorder and Inorder Traversal )根据二叉树的中序遍历和后序遍历重建二叉树
- LeetCode-105:Construct Binary Tree from Preorder and Inorder Traversal (利用先序和中序遍历构建二叉树) -- medium
- [LintCode] 前序遍历和中序遍历树构造二叉树 Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal 从先序和中序重建二叉树@LeetCode
- Construct Binary Tree from Preorder and Inorder Traversal 前序和中序遍历构建二叉树
- leetCode 105.Construct Binary Tree from Preorder and Inorder Traversal (根据前序遍历和中序遍历构造二叉树)
- [leetcode]Construct Binary Tree from Preorder and Inorder Traversal(根据前序、中序遍历确定一棵二叉树 C语言)
- 无线企业路由器] L2TP VPN构建站点到站点安全隧道
- C++设计模式之状态模式(二)
- 在程序运行期间,点击UIbutton,如何生成和改变uiview及其子类的内容title等
- struts2和servlet的共存问题
- PAT 1010
- Construct Binary Tree from Preorder and Inorder Traversal 根据先序和中序序列生成二叉树(重重)
- STL array方法总结(三)Element access(22)
- iOS当发生内存警告时的一些处理
- codeforces B#264. Caisa and Pylons
- Java后台线程Daemon
- 一个新的开始
- Mina网络应用框架及TCP/UDP开发范例(编著)
- C#知识 泛型
- win7 系统如何设置快速启动栏