当前位置: 首页 > news >正文

科技企业网站模板/网络营销的推广

科技企业网站模板,网络营销的推广,创业做网站 优帮云,jsp做网站实例教程LeetCode 热题 100 | 98. 验证二叉搜索树 大家好,今天我们来解决一道经典的二叉树问题——验证二叉搜索树。这道题在 LeetCode 上被标记为中等难度,要求判断给定的二叉树是否是一个有效的二叉搜索树(BST)。 问题描述 给你一个二…

LeetCode 热题 100 | 98. 验证二叉搜索树

大家好,今天我们来解决一道经典的二叉树问题——验证二叉搜索树。这道题在 LeetCode 上被标记为中等难度,要求判断给定的二叉树是否是一个有效的二叉搜索树(BST)。


问题描述

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

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

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

示例 1:

输入:root = [2,1,3]
输出:true

示例 2:

输入:root = [5,1,4,null,null,3,6]
输出:false
解释:根节点的值是 5 ,但是右子节点的值是 4 。

提示:

  • 树中节点数目范围在 [1, 10^4]
  • -2^31 <= Node.val <= 2^31 - 1

解题思路

核心思想
  1. 递归验证

    • 使用递归方法,为每个节点维护一个取值范围 [min_val, max_val]
    • 对于根节点,其取值范围为 (-∞, +∞)
    • 对于左子树,更新上界为父节点的值;对于右子树,更新下界为父节点的值。
    • 如果某个节点的值超出其允许范围,则该树不是有效的二叉搜索树。
  2. 中序遍历

    • 二叉搜索树的中序遍历结果是一个严格递增的序列。
    • 在中序遍历过程中,维护一个全局变量 prev,记录前一个访问的节点值。
    • 如果当前节点值小于等于 prev,则该树不是有效的二叉搜索树。
递归验证方法
class Solution:def isValidBST(self, root: TreeNode) -> bool:def validate(node, low=float('-inf'), high=float('inf')):if not node:return Trueif not (low < node.val < high):return Falsereturn (validate(node.left, low, node.val) andvalidate(node.right, node.val, high))return validate(root)
中序遍历方法
class Solution:def isValidBST(self, root: TreeNode) -> bool:self.prev = float('-inf')def inorder_traversal(node):if not node:return Trueif not inorder_traversal(node.left):return Falseif node.val <= self.prev:return Falseself.prev = node.valreturn inorder_traversal(node.right)return inorder_traversal(root)

复杂度分析

  • 时间复杂度:O(n),其中 n 是树中节点的数量。每个节点恰好被访问一次。
  • 空间复杂度:O(h),其中 h 是树的高度。递归调用栈的深度最多为树的高度。

示例运行

示例 1
输入:root = [2,1,3]
输出:true
示例 2
输入:root = [5,1,4,null,null,3,6]
输出:false
解释:根节点的值是 5 ,但是右子节点的值是 4 。

总结

通过递归验证或中序遍历,我们可以高效地判断一个二叉树是否为有效的二叉搜索树。递归验证方法通过维护每个节点的取值范围来确保其符合BST的性质,而中序遍历方法则利用BST中序遍历结果为严格递增序列的特性。希望这篇题解对大家有所帮助,如果有任何问题,欢迎在评论区留言讨论!

http://www.whsansanxincailiao.cn/news/30727164.html

相关文章:

  • .org网站开发/seo权威入门教程
  • 网站开发课程软件/怎么申请一个网站
  • 国土局网站建设方案/开发一个平台需要多少钱
  • 做网站的免费空间/竞价排名的弊端
  • 什么网站专门做批发/在哪里查关键词排名
  • 电子政务门户网站建设/优化网站哪个好
  • 建网站wordpress/中国免费网站服务器主机域名
  • 营销型企业网站的类型/淘客推广
  • 网站建设包含哪些方面/文章代写
  • 做网站seo赚钱吗/搜索引擎营销ppt
  • 做微信营销网站建设/网络推广企划
  • nas做网站要哪些东东/各平台推广费用
  • 汉中专业做网站/广州百度推广外包
  • 开通网站需要什么手续/现在阳性最新情况
  • 怎么看网站是用什么程序做的/网络营销推广专家
  • 建设网站的网络公司/云南网络推广服务
  • 品牌型网站设计/南通企业网站制作
  • 电子商务网站开发分几个模块/抖音搜索seo排名优化
  • 页面有哪几个网站可以做/宁波网络推广seo软件
  • 青岛网站设计/网站排名优化技巧
  • 网站http500内部服务器错误/关键词自助优化
  • 网站建设itcask/河南seo排名
  • 关于网站集约化建设公函/杭州百度快速排名提升
  • 汽修网站建设免费/百度查重工具
  • 中国网络游戏投诉平台/北京seo技术
  • 外贸网站建设升上去/中文域名注册
  • 网站做描本好处/seo线上培训班
  • 一级a做爰片免费网站孕交视频/今日疫情最新消息全国31个省
  • 网站云模板/seo综合查询站长工具怎么用
  • 潍坊 开发区网站建设/优化大师win7官方免费下载