Verify Preorder Sequence in Binary Search Tree
Last updated
Last updated
class Solution {
public boolean verifyPreorder(int[] preorder) {
int low = Integer.MIN_VALUE;
Stack<Integer> stack = new Stack<>();
for (int curr : preorder) {
if (curr < low) {
return false;
}
while (!stack.isEmpty() && curr > stack.peek()) {
low = stack.pop();
}
stack.push(curr);
}
return true;
}
}public boolean verifyPreorder(int[] preorder) {
int low = Integer.MIN_VALUE, i = -1;
for (int p : preorder) {
if (p < low)
return false;
while (i >= 0 && p > preorder[i])
low = preorder[i--];
preorder[++i] = p;
}
return true;
}