题解 | #判断是不是二叉搜索树#

判断是不是二叉搜索树

https://www.nowcoder.com/practice/a69242b39baf45dea217815c7dedb52b

二叉搜索树:中序遍历有序,只要判断每一个前一个元素是否都小于其后一个元素即可

采用递归

遇到空,返回true

先遍历left,不符合返回false;针对root,如果前大于后,返回false;反之,更新pre,返回right结果

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return bool布尔型
     */
  	// 保存前驱节点的信息 
    TreeNode pre;
    public boolean isValidBST (TreeNode root) {
        if (root == null) {
            return true;
        }
        boolean left = isValidBST(root.left);
	  	// 如果左侧不符合,直接返回false,无需再做判断 
        if (!left) {
            return false;
        }
	  	// 如果对中间进行判断,不符合,返回false
        if (pre != null && root.val < pre.val) {
            return false;
        }
	  	// 更新下一个节点的pre值为当前值 
        pre = root;
        return isValidBST(root.right);
    }
}

全部评论

相关推荐

03-27 13:58
门头沟学院 Java
点赞 评论 收藏
分享
起名字真难233:人家只有找猴子的预算,来个齐天大圣他们驾驭不住呀😂😂
点赞 评论 收藏
分享
不放弃的小鱼干很洒脱:好可爱的离职理由
点赞 评论 收藏
分享
03-25 10:54
华南理工大学
昨天收到腾讯音乐OC了,xdm,准备去做TME孝子了!正式宣布:TME,你的兵来了!BG:本硕都是华南理工软件工程专业,有腾讯CSIG和字节的两段实习,还有一篇A区论文一作在投。OC的是酷狗的后台开发。不为别的,就为这第一个OC,想哭!流程里还有团子和鹅,上周被阿里一轮游了……脆皮大学生表示:淘宝已卸载,谢谢。广州人,就想找个离家近的厂,当然也有自己的一些考虑,放在最后,兄弟们要是没有精力海投或者最后要抉择Offer,可以参考我的逻辑。TL:3.14网申-3.17一面-3.19二面-3.21&nbsp;hr面-3.24OC。TME没有笔试,我就面试的时候手撕了一轮,所以感觉流程推进很快,刚好10天,顺利...
都有实习了:10天速通?恭喜大佬,而且真的好厉害 但是有一个***********************诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖哈哈)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务