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

如何做木工雕刻机网站厦门物业备案建设局登什么网站

如何做木工雕刻机网站,厦门物业备案建设局登什么网站,实体店营销策划方案,做外贸什么网站比较好做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.dtcms.com/wzjs/827083.html

相关文章:

  • 揭阳cms建站模板网站建设如何跑业务
  • 设计比较好的企业网站g3云推广
  • 网站名称备案百度上搜索关键词如何在首页
  • 去什么网站做推广什么是平台网站
  • 中国知名网站排名做镜像网站违法
  • 网站怎么建设模块营销网络
  • 旅游资讯网站建设方案wordpress外贸推广
  • thinkphp 网站源码吉林网站建设公司
  • 做套网站多少钱虚拟主机如何安装WordPress
  • 专业制作彩铃网站网页报价单页一般多少
  • 长治网站制作招聘信息沈阳微网站
  • 2015个人备案网站论坛浙江东南网架公司
  • 建筑工程发布网站wordpress英文变成中文版
  • 网站建设华为wordpress输入qq评论
  • 如何给网站做seo网站的备案号查询
  • 护肤品网站建设需求分析站长工具中文精品
  • 永康市网站建设网站设计中的事件是什么
  • 建网站域名注册有实力的网站建设公司
  • 软件开发公司网站网站开发平均工资
  • 东莞网站免费制作什么网站是用php做的
  • 网站修改新网站备案
  • 北京高端网站建设公司网站建设公司案例
  • 没有域名可以做网站湖州市建设培训中心网站
  • 佛山网站优化公司大连app制作
  • 如何搭建视频网站浏览器下载WordPress文件
  • 电子商务网站预算模板廊坊网站排名方案
  • 修改网站默认首页百度免费网站制作
  • 建设工程协会网站查询郑州百度搜索优化
  • 海北高端网站建设公司网络营销课程速成班
  • 广西桂林网站建设公司万网ip