Skip to content

Commit 0cc3a5b

Browse files
committed
Construct Binary Tree solution
1 parent 145428a commit 0cc3a5b

File tree

1 file changed

+29
-0
lines changed
  • construct-binary-tree-from-preorder-and-inorder-traversal

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
class Solution {
2+
public:
3+
TreeNode* build(vector<int>& preorder, int& pos, vector<int>& inorder, int start, int end) {
4+
if(start >= end)
5+
return nullptr;
6+
7+
int i;
8+
9+
for(i = start; i < end; i++){
10+
if(preorder[pos] == inorder[i])
11+
break;
12+
}
13+
14+
TreeNode* root = new TreeNode(preorder[pos]);
15+
16+
pos++;
17+
18+
root->left = build(preorder, pos, inorder, start, i);
19+
root->right = build(preorder, pos, inorder, i + 1, end);
20+
21+
return root;
22+
}
23+
24+
TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {
25+
int pos = 0;
26+
27+
return build(preorder, pos, inorder, 0, inorder.size());
28+
}
29+
};

0 commit comments

Comments
 (0)