Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jianminchen/2cffe3c18cb7b7447cd76b7bfbbba6ff to your computer and use it in GitHub Desktop.
Save jianminchen/2cffe3c18cb7b7447cd76b7bfbbba6ff to your computer and use it in GitHub Desktop.
Leetcode 1008 - study Java code
// https://leetcode.com/problems/construct-binary-search-tree-from-preorder-traversal/discuss/252479/Simple-Recursive-solution-in-Java-(more-verbose)
public TreeNode bstFromPreorder(int[] preorder) {
return bstFromPreorder(preorder, 0, preorder.length - 1);
}
public TreeNode bstFromPreorder(int[] order, int start, int end) {
if (start > end) {
return null;
}
TreeNode node = new TreeNode(order[start]);
int rightStart = start;
for (int i = start; i <= end; i++) {
if (order[start] < order[i]) {
break;
}
rightStart = i;
}
node.left = bstFromPreorder(order, start + 1, rightStart);
node.right = bstFromPreorder(order, rightStart + 1, end);
return node;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment