LeetCode Construct Binary Tree from Preorder and Inorder Traversal
2014-03-26 09:08
288 查看
题目:
Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
分析参考:http://leetcode.com/2011/04/construct-binary-tree-from-inorder-and-preorder-postorder-traversal.html
Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
分析参考:http://leetcode.com/2011/04/construct-binary-tree-from-inorder-and-preorder-postorder-traversal.html
/** * 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) { TreeNode *root = createTree(preorder, 0, preorder.size()-1, inorder, 0, inorder.size()-1); return root; } private: TreeNode *createTree(vector<int> &preorder, int preBeg, int preEnd, vector<int> &inorder, int inBeg, int inEnd) { if(preBeg > preEnd) return NULL; int rootVal = preorder[preBeg]; TreeNode *root = new TreeNode(rootVal); //找到rootVal在中序中的索引 int index; for(int i = inBeg; i <= inEnd; i++) { if(inorder[i] == rootVal) { index = i; break; } } int length = index - inBeg; root->left = createTree(preorder, preBeg+1, preBeg+length, inorder, inBeg, index-1); root->right = createTree(preorder, preBeg+length+1, preEnd, inorder, index+1, inEnd); return root; } };
相关文章推荐
- LeetCode105 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:二叉树之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 (Medium) (cpp)
- Leetcode: 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】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 (中序和后序建树,在题目给的函数中完成)【leetcode】
- 【leetcode刷题笔记】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: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++】【LeetCode】105. Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode Construct Binary Tree from Preorder and Inorder Traversal