二叉搜索树的后序遍历序列

来源:互联网 发布:软件服务外包 编辑:程序博客网 时间:2024/05/16 02:25

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

Idea

采用递归思想。根据二叉搜索树的性质,左<根<右。二叉搜索树的后序遍历序列,最后一个值为根,序列的左侧值小于最后一个值,序列的右侧值大于最后一个值。依次判断。

Code

public class Solution {    public boolean VerifySquenceOfBST(int [] sequence) {       if(sequence.length==0){            return false;        }        return isBST(sequence,0,sequence.length-1);    }    public boolean isBST(int [] sequence,int start,int end ){        if(start>=end){                return true;        }        int i=start;        for(;i<end;i++){            if(sequence[i]>sequence[end]){                break;            }        }        for(int j=i;j<end;j++){            if(sequence[j]<sequence[end]){                return false;            }        }        return isBST(sequence,start,i-1)&&isBST(sequence,i,end-1);    }}


0 0
原创粉丝点击