首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >二叉树的深度搜索专题一>验证二叉搜索树

二叉树的深度搜索专题一>验证二叉搜索树

作者头像
用户11305962
发布2025-06-01 13:37:36
发布2025-06-01 13:37:36
2170
举报
文章被收录于专栏:学习学习

题目: 


解析: 

这里使用全局变量,简化递归

通过一个全局变量prev,中序遍历二叉树

发现序列有序就更新prev,然后返回true 

注意:这里可以直接剪枝写法:发现不是搜索二叉树,直接返回false即可 


代码: 

代码语言:javascript
复制
class Solution {
    public Long pre = -Long.MIN_VALUE;//注意数据本来很小时,开始就不会有序,所以要更大的数据类型
    public boolean isValidBST(TreeNode root) {
        /**
        通过一个全局变量prev,中序遍历二叉树
        发现序列有序就更新prev,然后返回true否则返回false
         */

        if(root == null) return true;
        boolean ret = false;

        boolean leftT = isValidBST(root.left);
        //剪枝
        if(leftT == false) return false;//直接返回


        if(pre < root.val){
          ret = true;

          //剪枝
          if(ret == false) return false;
          pre = (long)root.val;//prev是root的前驱,方式来遍历
        }

        boolean rightT = isValidBST(root.right);

        return leftT && ret && rightT;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档