leetcode-Construct Binary Tree from Preorder and Inorder Traversal
2013-12-06 12:46
471 查看
Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
这道题跟之前的从中序和后序序列中构造二叉树类似的,换成了从先序和中序序列来构造。
Note:
You may assume that duplicates do not exist in the tree.
这道题跟之前的从中序和后序序列中构造二叉树类似的,换成了从先序和中序序列来构造。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) { return buildTree(preorder, 0, preorder.size()-1, inorder, 0, inorder.size()-1); } private: TreeNode *buildTree(vector<int> &preorder, int pb, int pe, vector<int> &inorder, int ib, int ie) { if (pb > pe) return NULL; if (pb == pe) return new TreeNode(preorder[pb]); int i = ib; while (i <= ie) { // 从中序序列中找到前序序列第一个数字(根)的下标 if (inorder[i] == preorder[pb]) break; ++i; } TreeNode *root = new TreeNode(preorder[pb]); if (i > ib) // 递归构造左子树 root->left = buildTree(preorder, pb+1, pb+i-ib, inorder, ib, i-1); if (i < ie) // 递归构造右子树 root->right = buildTree(preorder, pb+i-ib+1, pe, inorder, i+1, ie); return root; } };
相关文章推荐
- 【LeetCode】105. 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 Inorder and Postorder 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 105. 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
- [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode刷题【Array】 Construct Binary Tree from Preorder and Inorder Traversal
- Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal 先序和中序中恢复二叉树 解题报告
- [leetcode][tree] Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode]Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode: Construct Binary Tree from Preorder and Inorder Traversal [105]
- leetcode 105 —— 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
- [leetcode]105. Construct Binary Tree from Preorder and Inorder Traversal
- leetcode题解-105 && 106. Construct Binary Tree from Preorder (PostOrder) and Inorder Traversal