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

LeetCode讲解篇之98. 验证二叉搜索树

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

我们可以通过递归搜索的方式查询某棵树是不是二叉搜索树,二叉搜索树需要满足的最小值与最大值的约束并且左子树和右子树都是二叉搜索树或者当前节点为空,以当前节点为根节点的树才是二叉搜索树,否则不是二叉搜索树

题解代码

func isValidBST(root *TreeNode) bool {var f func(root *TreeNode, minVal, maxVal int) boolf = func(root *TreeNode, minVal, maxVal int) bool {// 当前节点为空,表示是二叉搜索树if root == nil {return true}// 当前节点的值不满足当前二叉搜索树的最小值和最大值,表明不是二叉搜索树if root.Val <= minVal || root.Val >= maxVal {return false}// 递归查找左子树是否是二叉搜索树,其中左子树的二叉搜索树的最大值不能大于当前元素的值// 递归查找右子树是否是二叉搜索树,其中右子树的二叉搜索树的最小值不能小于当前元素的值// 只有当左子树和右子树都是二叉搜索树是,以当前节点为根节点的树才是二叉搜索树return f(root.Left, minVal, root.Val) && f(root.Right, root.Val, maxVal)}// 验证是否是二叉搜索树return f(root, math.MinInt64, math.MaxInt64)
}

题目链接

https://leetcode.cn/problems/validate-binary-search-tree/description/


http://www.mrgr.cn/news/43721.html

相关文章:

  • Effective C++中文版学习记录(三)
  • 【Python】simplejson:Python 中的 JSON 编解码利器
  • 找生网站方案———未来之窗行业应用跨平台架构
  • 雷达像素模型,地物强度决定方差决定雷达图像幅度
  • 我开发了一个出海全栈SaaS工具,还写了一套全栈开发教程
  • 如何移除 iPhone 上的网络锁?本文筛选了一些适合您的工具
  • 大模型/Sora/世界模型之间是什么关系,对自动驾驶的意义是什么?
  • 【C语言教程】代码规范和文档编写
  • ssrf学习(ctfhub靶场)
  • 周报_2024/10/6
  • 【Linux的那些事】shell命名及Linux权限的理解
  • 【星汇极客】手把手教学STM32 HAL库+FreeRTOS之任务管理(2)
  • 【C语言进阶】系统测试与调试
  • React获取DOM节点
  • 项目管理-信息系统治理
  • C语言代码练习(test_1_19)
  • Linux运维01:VMware创建虚拟机
  • 芒果虫害分类数据集,包括10个类别共9738张图像:茶黄蓟马荔枝叶瘿蚊白翅蜡蝉等
  • Java 枚举一口气讲完!(´▽`ʃ♡ƪ)
  • Linux线程(八)线程与信号之间的关系详解