思路:
何时为一个合格的搜索树?
1左边是合格搜索树
2右边是合格搜索树
3根大于左边的最大值
4根小于右边的最小值
运用递归判断
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isValidBST(TreeNode root) {
if(root==null)
{
return true;
}
boolean left=true;
boolean right=true;
if(root.left!=null)
{
left=isValidBST(root.left)&&root.val>getmax(root.left);
}
if(root.right!=null)
{
right=isValidBST(root.right)&&root.val<getmin(root.right);
}
return left&&right;
}
public int getmin(TreeNode root)
{
while(root.left!=null)
{
root=root.left;
}
return root.val;
}
public int getmax(TreeNode root)
{
while(root.right!=null)
{
root=root.right;
}
return root.val;
}
}