Construct Binary Search Tree from Preorder Traversal LeetCode solution in Java
1class Solution {2public TreeNode bstFromPreorder(int[] preorder) {3return bst(preorder, 0, preorder.length - 1);4}56public TreeNode bst(int[] preorder, int start, int end) {7if (start > end) return null;89TreeNode root = new TreeNode(preorder[start]);10int breakPoint = start + 1;11while (breakPoint <= end && preorder[breakPoint] < preorder[start]) {12breakPoint++;13}1415root.left = bst(preorder, start + 1, breakPoint - 1);16root.right = bst(preorder, breakPoint, end);17return root;18}19}