자바 --- 트리가 이진 검색 트리 BST인지 판단

Java— 트리가 이진 검색 트리 BST인지 확인

아이디어 : 이진 트리의 경우 가장 간단한 방법은 증가하는 시퀀스인지 확인하기 위해 순회하는 것입니다. 그렇다면 이진 검색 트리이고 그렇지 않은 경우 이진 검색 트리가 아닙니다. 여기서 lastVisit는 마지막으로 검색된 노드를 기록하는 데 사용됩니다. 이 프로세스는 먼저 왼쪽 하단 모서리에서 노드를 찾고 lastVisit을이 노드의 값으로 업데이트 한 다음 중간 순서 순회에 따라 차례로 업데이트하는 것입니다.

암호:

/**
 * @Author shall潇
 * @Date 2021/3/4
 * @Description 
 */
public class BinaryTree {
    private static int lastVisit = Integer.MIN_VALUE;
    public static boolean isBST(Node root){
        if(root==null)return true;              //空树也是BST

        boolean judgeleft = isBST(root.left);   //判断左子树是否是

        if(root.date >= lastVisit && judgeleft){ //当前节点比上次访问的节点的数大
            lastVisit = root.date;
        }else {
            return false;
        }
        boolean judegright = isBST(root.right);//判断右子树是否是
        return judegright;
    }

    class Node{		//创建树的数据结构
        int date;   //节点数据
        Node left;  //左节点
        Node right; //有节点
    }
}

추천

출처blog.csdn.net/qq_43288259/article/details/114376008