aboutsummaryrefslogtreecommitdiff
path: root/other/binary_tree_traversal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/binary_tree_traversal.cpp')
-rw-r--r--other/binary_tree_traversal.cpp24
1 files changed, 0 insertions, 24 deletions
diff --git a/other/binary_tree_traversal.cpp b/other/binary_tree_traversal.cpp
deleted file mode 100644
index 601e21c..0000000
--- a/other/binary_tree_traversal.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "leetcode.h"
-
-class Solution {
-public:
- TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) {
- unordered_map<int, int> m;
- for (int i = 0; i < inorder.size(); i++)
- m[inorder[i]] = i;
- return splitTree(preorder, m, 0, 0, inorder.size() - 1);
- }
-
-private:
- TreeNode *splitTree(vector<int> &preorder, unordered_map<int, int> &m,
- int pix, int iLeft, int iRight) {
- int rVal = preorder[pix], iMid = m[rVal];
- TreeNode *root = new TreeNode(rVal);
- if (iMid > iLeft)
- root->left = splitTree(preorder, m, pix + 1, iLeft, iMid - 1);
- if (iMid < iRight)
- root->right =
- splitTree(preorder, m, pix + iMid - iLeft + 1, iMid + 1, iRight);
- return root;
- }
-};