当前位置: 首页> 健康> 美食 > 新闻最新头条10条_网站建设教程高清视频_手机网络优化软件_今天的新闻最新消息

新闻最新头条10条_网站建设教程高清视频_手机网络优化软件_今天的新闻最新消息

时间:2025/7/14 5:06:55来源:https://blog.csdn.net/2302_80190174/article/details/143606226 浏览次数:0次
新闻最新头条10条_网站建设教程高清视频_手机网络优化软件_今天的新闻最新消息

题目描述

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效 二叉搜索树定义如下:

  • 节点的左子树只包含小于当前节点的数。
  • 节点的右子树只包含 大于 当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。

98. 验证二叉搜索树 - 力扣(LeetCode) 

解题思路

要判断一个二叉树是否是有效的二叉搜索树(BST),我们需要确保每个节点都满足BST的定义:节点的左子树只包含小于当前节点的数,节点的右子树只包含大于当前节点的数,并且所有左子树和右子树自身也必须是BST。

递归是解决这个问题的有效方法。递归的基本思路是:

  1. 递归函数定义
    • 定义一个递归函数 isValidBST(TreeNode* node, long long lower, long long upper),其中 node 是当前节点,lower 是当前节点允许的最小值,upper 是当前节点允许的最大值。
    • 初始调用时,lower 可以设为负无穷大(例如 LONG_LONG_MIN),upper 可以设为正无穷大(例如 LONG_LONG_MAX)。
  2. 递归终止条件
    • 如果当前节点为空,返回 true,因为空树是BST。
    • 如果当前节点的值小于等于 lower 或大于等于 upper,返回 false,因为当前节点的值不满足BST的定义。
  3. 递归调用
    • 递归检查左子树,更新 upper 为当前节点的值(因为左子树的所有节点值必须小于当前节点)。
    • 递归检查右子树,更新 lower 为当前节点的值(因为右子树的所有节点值必须大于当前节点)。
  4. 返回结果
    • 如果左子树和右子树都满足BST的定义,返回 true

 

class Solution {
public:bool isValidBST(TreeNode* node, long long lower = LONG_LONG_MIN,long long upper = LONG_LONG_MAX) {// 空节点是BSTif (node == nullptr) {return true;}// 当前节点的值不在允许的范围内,不是BSTif (node->val <= lower || node->val >= upper) {return false;}// 递归检查左子树和右子树return isValidBST(node->left, lower, node->val) &&isValidBST(node->right, node->val, upper);}
};

详细解释

  1. 函数签名
    • isValidBST(TreeNode* node, long long lower = LONG_LONG_MIN, long long upper = LONG_LONG_MAX)
      • node 是当前节点。
      • lower 是当前节点允许的最小值,初始为 LONG_LONG_MIN
      • upper 是当前节点允许的最大值,初始为 LONG_LONG_MAX
  2. 递归终止条件
    • if (node == nullptr) { return true; }:空节点是BST。
    • if (node->val <= lower || node->val >= upper) { return false; }:当前节点的值不在允许的范围内,不是BST。
  3. 递归调用
    • isValidBST(node->left, lower, node->val):检查左子树,更新 upper 为当前节点的值。
    • isValidBST(node->right, node->val, upper):检查右子树,更新 lower 为当前节点的值。
  4. 返回结果
    • return isValidBST(node->left, lower, node->val) && isValidBST(node->right, node->val, upper);:如果左子树和右子树都满足BST的定义,返回 true
关键字:新闻最新头条10条_网站建设教程高清视频_手机网络优化软件_今天的新闻最新消息

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: