判断二叉搜索树的方法是:
中序遍历形成递增序列
//全局变量记录中序遍历产生的序列,因为要递归,所以要用全局变量 List<Integer> list = new ArrayList<>(); public boolean isValidBST(TreeNode root) { /* 这里要注意二叉搜索树的左子树的每个节点都要小于根节点,不只是左孩子,右子树也同样, 常犯的一个错误就是只是判断了左孩子和右孩子 正确方法是:中序遍历法,中序遍历之后的结果是一个递增序列 判断是否是二叉搜索树的方法是:中序遍历法,记住 */ if (root==null) return true; inOrder(root); for (int i = 1; i < list.size(); i++) { if (list.get(i)<=list.get(i-1)) return false; } return true; } void inOrder(TreeNode root){ if (root==null) return; inOrder(root.left); list.add(root.val); inOrder(root.right); }