合法二叉树后序遍历序列

隐身守侯 提交于 2020-03-01 13:52:21

转载请注明作者与出处:franciscolv http://www.cnblogs.com/franciscolv/archive/2011/11/20/2255838.html

package SortSet;/** * 判断输入数组是否为合格的二叉搜索树后续遍历结果 *  * @author franciscolv *  */public class VerifyPosOrder {    public static void main(String[] args) {        int[] a = { 2, 3, 9, 11, 10, 8 };        System.out.println(verifyPosOrder(a, 0, a.length -1));    }    public static boolean verifyPosOrder(int[] a, int s, int e) {        if (a == null || s > e)            return false;        if (s == e)            return true;        int root = a[e];        int i = s;        for (; i < e; i++)            if (a[i] > root)                break;        for (int j = i + 1; j < e; j++)            if (a[j] < root)                return false;        boolean left = true, right = true;        if (i > 0)            left = verifyPosOrder(a, s, i - 1);        if (i < e)            right = verifyPosOrder(a, i, e - 1);        return left && right;    }}



  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!