Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary search tree.
You may assume each number in the sequence is unique.
Consider the following binary search tree:
5 / 2 6 / 1 3
class Solution { public boolean verifyPreorder(int[] preorder) { if (preorder == null) { return false; } // keep a decresing stack LinkedList<Integer> stack = new LinkedList<>(); int min = Integer.MIN_VALUE; for (int node: preorder) { if (node < min) { return false; } // get into right subtree while (!stack.isEmpty() && node > stack.peekFirst()) { min = stack.pollFirst(); } stack.offerFirst(node); } return true; } }