98.验证二叉排序树
2021-01-29 08:14
标签:它的 public str 二叉排序树 code 验证 turn 运行 二叉搜索树 思路 代码 思路 代码 一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; (4)没有键值相等的结点。 98.验证二叉排序树 标签:它的 public str 二叉排序树 code 验证 turn 运行 二叉搜索树 原文地址:https://www.cnblogs.com/yh-simon/p/12833512.html解题(失败)
public boolean isValidBST(TreeNode root) {
boolean ans =true;
if(root==null) return true;
if (root.left == null && root.right == null) return true;
if(root.left!=null){
if(root.left.val>=root.val) return false;
ans=isLeftSubValid(root.left,root);
}
if(root.right!=null){
if(root.right.val=node.val||(node!=pre&&node.left.val>=pre.val)){
return false;
}
pre=node;
isLeftSubValid(node.left,pre);
}
if(node.right!=null){
if(node.right.val=pre.val)){
return false;
}
pre=node;
isLeftSubValid(node.right,pre);
}
return true;
}
public boolean isRightSubValid(TreeNode node,TreeNode pre){
if(node.left!=null){
if(node.left.val>=node.val||(node!=pre&&node.left.val
优解
class Solution{
long pre=Long.Min_VALUE;
public boolean isValidBST(TreeNode root){
if(root==null){
return true;
}
//访问左子树
if(!isValidBST(root.left)){
return false;
}
//访问当前节点:如果当前节点小于等于中序遍历的前一个节点,说明不满足BST,返回false;否则继续遍历
if(root.val
小结
二叉排序树(二叉搜索树或二叉查找树)