【leetcode】Construct Binary Tree from Preorder and Inorder Traversal
2013-10-05 23:58
423 查看
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int findInorderLoc(vector<int> &inorder,int target,int inSta,int inEnd)//找到先序的根在中序中的位置 { for(int i=inSta;i<=inEnd;i++) { if(inorder[i]==target) return i; } return inSta; } TreeNode *dfs(vector<int> &preorder,int preSta,int preEnd, vector<int> &inorder,int inSta,int inEnd) { if(preSta>preEnd||inSta>inEnd)//终端情况 return NULL; TreeNode *root=new TreeNode(preorder[preSta]);//先序序列的第一个为根 int inorderLoc=findInorderLoc(inorder,root->val,inSta,inEnd); int len1=inorderLoc-inSta;//左子树的元素个数 int len2=inEnd-inorderLoc;//右子树的元素个数 root->left=dfs(preorder,preSta+1,preSta+len1,inorder,inSta,inSta+len1-1); root->right=dfs(preorder,preSta+len1+1,preEnd,inorder,inSta+len1+1,inEnd); } TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) { // Note: The Solution object is instantiated only once and is reused by each test case. return dfs(preorder,0,preorder.size()-1,inorder,0,inorder.size()-1); } };
相关文章推荐
- 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【java】
- [JAVA]LeetCode105 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@python
- 剑指offer 面试题6:重建二叉树(Leetcode105. 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: 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(105)
- 【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
- LeetCode105 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