zoukankan      html  css  js  c++  java
  • 【牛客网】24.二叉搜索树的后序遍历序列

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

    package leetcode;
    
    public class L23SequenceOFBST {
    	public boolean VerifySquenceOfBST(int[] sequence) {
    		if(sequence==null)return false;
    		int len = sequence.length;
    		if(len<=0)return false;
    		if(len==1)return true;
    		return VerifySquenceOfBSTCore(sequence, 0,len-1);
    	}
    
    	private boolean VerifySquenceOfBSTCore(int[] sequence,int start, int len) {
    		int root=sequence[len]; 
    		int i;
    		for(i=start;i<len;i++){
    			if(sequence[i]>root)
    				break;
    		}
    		int j;
    		for(j=i;j<len;j++){
    			if(sequence[j]<root)
    				return false;
    		}
    		boolean left=true;
    		if(i>start){
    			left=VerifySquenceOfBSTCore(sequence,start,i-1);
    		}
    		boolean right=true;
    		if(len-i>1){
    			right=VerifySquenceOfBSTCore(sequence,i,len-1);
    		}
    		return left&&right;
    	}
    	public static void main(String[] args) {
    		int[] seq={7,4,6,5};
    		L23SequenceOFBST l23= new L23SequenceOFBST();
    		System.out.println(l23.VerifySquenceOfBST(seq));
    		int [] seq2={5,7,6,9,11,10,8};
    		System.out.println(l23.VerifySquenceOfBST(seq2));
    	}
    }
    
  • 相关阅读:
    Codeforce 270A
    Codeforce 513A
    Codeforce 834A
    51Nod 1433 0和5
    51Nod 1005 大数加法
    51Nod 1136 欧拉函数
    51Nod 1449 砝码称重 (二进制思想)
    Codeforce 459A
    Codeforce 515A
    Codeforce 474A
  • 原文地址:https://www.cnblogs.com/yumiaomiao/p/8876062.html
Copyright © 2011-2022 走看看