利用中序遍历,传入一个参数,记录上一个结点,如果上一个结点比当前结点的值大,则不是二叉搜索树

  1. public boolean isBinarySearchTree(BinaryTreeNode node, BinaryTreeNode pre){ 
  2.     if(node== nullreturn false
  3.     boolean leftSearch = true
  4.     boolean rightSearch = true
  5.     if(node.left!= null){ 
  6.         leftSearch = isBinarySearchTree(node.left, pre); 
  7.     } 
  8.     if(pre.value> node.value) return false
  9.     pre.value = node.value; 
  10.     if(node.right!= null){ 
  11.         rightSearch = isBinarySearchTree(node.right, pre); 
  12.     } 
  13.     return leftSearch && rightSearch;