Construct Binary Tree from Preorder and Inorder Traversal
2015-04-24 03:37
316 查看
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* visit(vector<int> &preorder, int lbegin, int lend, vector<int> &inorder, int rbegin, int rend, map<int, int> &table) { if (lbegin > lend) { return NULL; } TreeNode *root = new TreeNode(preorder[lbegin]); int pos = table[preorder[lbegin]]; int leftLen = pos - rbegin; root->left = visit(preorder, lbegin+1, lbegin+leftLen, inorder, rbegin, pos-1, table); root->right = visit(preorder, lbegin+leftLen+1, lend, inorder, pos+1, rend, table); return root; } TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) { int size = inorder.size(); if (size < 1) { return NULL; } map<int, int> table; for (int i = 0; i < size; i++) { table[inorder[i]] = i; } return visit(preorder, 0, size-1, inorder, 0, size-1, table); } };
相关文章推荐
- 【leetcode】【105】Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal——LeetCode
- [LeetCode]题解(python):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
- Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal
- [LintCode] 前序遍历和中序遍历树构造二叉树 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 (利用先序和中序遍历构建二叉树) -- medium
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal
- 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 @ Python
- 【Construct Binary Tree from Preorder and Inorder Traversal】cpp