255. Verify Preorder Sequence in Binary Search Tree
5
/ \
2 6
/ \
1 3Input: [5,2,6,1,3]
Output: falseInput: [5,2,1,3,6]
Output: true// Stack (simulate preorder traversal)
bool verifyPreorder(vector<int>& preorder) { // time: O(n); space: O(n)
int low = INT_MIN;
stack<int> st;
for (int cur : preorder) {
if (cur < low) return false;
while (!st.empty() && cur > st.top()) {
low = st.top(); st.pop();
}
st.push(cur);
}
return true;
}Last updated