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

来源:互联网 发布:32位 windows 内存支持 编辑:程序博客网 时间:2024/06/16 09:53

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

解:

找根节点的递归

import java.util.Arrays;public class Solution {   public static boolean VerifySquenceOfBST(int[] sequence) {        if(sequence==null||sequence.length==0)            return false;        int root=sequence[sequence.length-1];        int i=0;        for(;i<sequence.length-1;i++){            if(sequence[i]>root){                break;            }        }        int j=i;        for(;j<sequence.length-1;j++){            if(sequence[j]<root)                return false;        }        boolean left=true;        boolean right=true;        if(i>0){            left=VerifySquenceOfBST(Arrays.copyOfRange(sequence, 0, i));        }        if(i<sequence.length-1)            right=VerifySquenceOfBST(Arrays.copyOfRange(sequence, i, sequence.length-1));        return (left&&right);     }}

0 0
原创粉丝点击