首页 > 其他 > 详细

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

时间:2020-01-14 00:02:57      阅读:100      评论:0      收藏:0      [点我收藏+]

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

思路:二叉搜索树即左子树<根<右子树,若满足该条件即为二叉搜索树。通过寻找左子树和右子树范围来进行递归调用,最终返回结果。

代码:

 1 public class Solution {
 2     public boolean VerifySquenceOfBST(int [] sequence) {
 3         if(sequence.length==0)
 4             return false;
 5         return isBST(sequence,0,sequence.length-1);
 6     }
 7     
 8     /*给出二叉树的范围判断是否为二叉搜索树*/
 9     public boolean isBST(int[] sequence,int start,int end){
10         if(end<=start)
11             return true;
12         int i = start;
13         for(;i<end;i++){
14             if(sequence[i]>sequence[end])
15                 break;
16         }
17         
18         for(int j=i;j<end;j++){
19             if(sequence[j]<sequence[end])
20                 return false;
21         }
22         return isBST(sequence,start,i-1)&&isBST(sequence,i,end-1);
23     }
24 }

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

原文:https://www.cnblogs.com/haq123/p/12189954.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!