二叉樹——判斷一棵樹是不是搜索二叉樹

中序遍歷是升序便可java

使用二叉樹遍歷的非遞歸版本更方便判斷blog

採用二叉樹的中序遍歷的非遞歸版本,在其中打印的位置用比較大小代替便可遞歸

public class IsBSTTree {
    public static boolean isBSTTree(Tree tree){
        if(tree == null) return true;

        Stack<Tree> stack = new Stack<>();
        int preNode = Integer.MIN_VALUE;

        while(!stack.empty() || tree != null){
            if(tree != null){
                stack.push(tree);
                tree = tree.left;
            }else{
                tree = stack.pop();
                if(preNode > tree.val){
                    return false;
                }
                preNode = tree.val;
                tree = tree.right;
            }
        }
        return true;
    }
}
相關文章
相關標籤/搜索