频道栏目
首页 > 资讯 > 其他 > 正文

编程习题二叉搜索树的后序遍历序列求解

17-12-12        来源:[db:作者]  
收藏   我要投稿

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

使用递归的方式,交替进行处理

java

public class Solution {
    public boolean VerifySquenceOfBST(int[] arr) {
        if (arr == null || arr.length == 0) {
            return false;
        }
        return isBST(arr, 0, arr.length - 1);
    }
    private boolean isBST(int[] arr, int start, int end) {
        if (start >= end) {
            return true;
        }
        int root = arr[end];
        int p1 = start;
        while (p1 < end && arr[p1] < root) {
            p1++;
        }
        int p2 = p1;
        while (p2 < end) {
            if (arr[p2] < root) {
                return false;
            } else {
                p2++;
            }
        }
        boolean left = isBST(arr, start, p1 - 1);
        boolean right = isBST(arr, p1, end - 1);
        return left && right;
    }
}
相关TAG标签
上一篇:apache httpd及tomcat整合
下一篇:shell脚本:创建文件及自动复制粘贴文件
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站