
思路:
中序遍历二叉树,中序遍历即左,中,右的判断,我们只需要保证前一个结点的值小于当前结点即可;
代码:
class Solution {
long pre = Long.MIN_VALUE;
public boolean isValidBST(TreeNode root) {
if (root == null) {
return true;
}
//左子树判断
if (!isValidBST(root.left)) {
return false;
}
//当前结点判断
//如果当前结点小于前一个结点,则说明不是二叉搜索树
if (root.val <= pre) {
return false;
}
//右节点的前一个结点应该是当前结点哟,这里要提前替换
pre = root.val;
return isValidBST(root.right);
}
}
网友评论