NowCoder 二叉搜索树的后序遍历序列 递归
题意:给一串序列,判断该序列是否某二叉树的后序遍历序列 思路:后序遍历最后一个节点为根节点,前面的都可以分成连续的两部分,一部分比根节点小,另一部分比根节点大,依次分块递归判断两部分是否连续即可 public class Solution { public boolean VerifySquenceOfBST ( int [ ] sequence ) { if ( sequence == null || sequence . length == 0 ) return false ; return solve ( sequence , 0 , sequence . length - 1 ) ; } public boolean solve ( int [ ] a , int l , int r ) { if ( l >= r ) return true ; int i = l , root = a [ r ] , mid ; for ( ; i < r ; i ++ ) { if ( a [ i ] > root ) break ; } mid = i ; for ( ; i < r ; i ++ ) { if ( a [ i ] < root ) return false ; } return solve ( a , l , mid - 1 ) && solve ( a , mid