class Solution { public boolean verifyPostorder(int[] postorder) { if(postorder == null) return false; if(postorder.length == 0) return true; return verifyPostorderBST(postorder, 0, postorder.length - 1); } private boolean verifyPostorderBST(int[] postorder, int left, int right) { if (left >= right) return true; int root = postorder[right]; int i = left; for (i = left; i < right; i++) if (postorder[i] > root) break; int j = i; for (j = i; j < right; j++) if (postorder[j] < root) return false; boolean l = true; if (i > 0) l = verifyPostorderBST(postorder, left, i - 1); boolean r = true; if (i < right) r = verifyPostorderBST(postorder, i, right - 1); return (l && r); }}