题目:https://leetcode-cn.com/problems/validate-binary-search-tree/submissions/
答案:
public boolean isValidBST(TreeNode root) {
if(root ==null) return true;
if(root ==null) return true;
if(root.left==null){
if(root.right==null){
return true;
}else{
if(root.val<min(root.right)){
return isValidBST(root.right);
}else{
return false;
}
}
}else{
if(root.right==null){
if(root.val>max(root.left)){
return isValidBST(root.left);
}else{
return false;
}
}else{
if(root.val<min(root.right) && root.val>max(root.left)){
return isValidBST(root.left) && isValidBST(root.right);
}else{
return false;
}
}
}
}
public int max(TreeNode treeNode){
if(treeNode == null){
return Integer.MIN_VALUE;
}else{
return Math.max(Math.max(treeNode.val,max(treeNode.left)),max(treeNode.right));
}
}
public int min(TreeNode treeNode){
if(treeNode == null){
return Integer.MAX_VALUE;
}else{
return Math.min(Math.min(treeNode.val,min(treeNode.left)),min(treeNode.right));
}
}