# python 3classSolution:defverifyPostorder(self, postorder: List[int])->bool:iflen(postorder)==0:returnTruereturn self.verifyBranch(postorder,0,len(postorder)-1)defverifyBranch(self, postorder, left, right):if left >= right :returnTrue
i, j = left, right
while postorder[i]< postorder[right]: i=i+1
k = i
while postorder[i]> postorder[right]: i=i+1if i == j:return self.verifyBranch(postorder, left, k-1)and self.verifyBranch(postorder, k, right-1)returnFalse
// c++classSolution{public:boolverifyPostorder(vector<int>& postorder){if(postorder.size()==0)returntrue;returnverifyBranch(postorder,0, postorder.size()-1);}boolverifyBranch(vector<int> postorder,int left,int right){if(left>= right)returntrue;int i = left;while(postorder[i]< postorder[right])++i;int k = i;while(postorder[i]>postorder[right])++i;if(i==right)returnverifyBranch(postorder, left, k-1)&&verifyBranch(postorder, k, right-1);returnfalse;}};