Given Preorder and inorder traversal of a tree, construct the binary tree.
Note:
Assume that duplicates does not exist in the tree.
Class Solution {Private:treenode *root; Vector<int> Mypreorder; Vector<int> myinorder;public:treenode *createtree (TreeNode *root,int pre,int in,int lenth) {int l,r,r Ootpos; if (lenth<=0) root=null; else {//new node Root=new TreeNode (Mypreorder[pre]); Find root for (int i=in;i<=in+lenth-1;i++) if (Root->val==myinorder[i]) rootpo S=i; Sub-tree length l=rootpos-in; R=LENTH-L-1; Build subtree Root->left=createtree (root->left,pre+1,in,l); Root->right=createtree (Root->right, pre+1+l,rootpos+1,r); } return root; } TreeNode *buildtree (vector<int> &preorder, vector<int> &inorder) {if (Preorder.size () & lt;=0) return NULL; Copy Mypreorder=preorder; Myinorder=inorder; Build Root=createtree (Root,0,0,preorder.size ()); return root; }};
Leetcode-construct Binary Tree from preorder and inorder traversal