From 35ceffcbec01e54483f36135ede9e47e6b55f7ce Mon Sep 17 00:00:00 2001 From: Fazeel Usmani Date: Wed, 13 Oct 2021 15:34:36 +0530 Subject: [PATCH] Create 13_bstFromPreOrder.cpp --- .../13_bstFromPreOrder.cpp | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 10 October LeetCode Challenge 2021/13_bstFromPreOrder.cpp diff --git a/10 October LeetCode Challenge 2021/13_bstFromPreOrder.cpp b/10 October LeetCode Challenge 2021/13_bstFromPreOrder.cpp new file mode 100644 index 0000000..5fc7284 --- /dev/null +++ b/10 October LeetCode Challenge 2021/13_bstFromPreOrder.cpp @@ -0,0 +1,26 @@ +/** + * Definition for a binary tree node. + * struct TreeNode { + * int val; + * TreeNode *left; + * TreeNode *right; + * TreeNode() : val(0), left(nullptr), right(nullptr) {} + * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} + * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} + * }; + */ +class Solution { +public: + TreeNode* bstFromPreorder(vector& preorder, int max_val = INT_MAX) { + if (i == preorder.size() || preorder[i] > max_val) return NULL; + + TreeNode* root = new TreeNode(preorder[i++]); + + root->left = bstFromPreorder(preorder, root->val); + root->right = bstFromPreorder(preorder, max_val); + + return root; + } +private: + int i = 0; +};