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

力扣 hot100 Day44

98. 验证二叉搜索树

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

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

        节点的左子树只包含 小于 当前节点的数。

        节点的右子树只包含 大于 当前节点的数。

        所有左子树和右子树自身必须也是二叉搜索树

//自己写的
class Solution {
public:void inorderHelper(TreeNode* root, vector<int>& result) {if (root == nullptr) return;inorderHelper(root->left, result);result.push_back(root->val);inorderHelper(root->right, result);}bool isValidBST(TreeNode* root) {vector<int> res;inorderHelper(root, res);for (int i = 1; i < res.size(); i++) {if (res[i] <= res[i-1]) {return false;}}return true;}
};

最直接的想法,按中序遍历排序,如果严格升序,就符合要求,能顺利实现

//抄的
class Solution {
public:bool isValidBST(TreeNode* root) {return helper(root, LONG_MIN, LONG_MAX);}bool helper(TreeNode* node, long min_val, long max_val) {if (!node) return true;if (node->val <= min_val || node->val >= max_val) {return false;}return helper(node->left, min_val, node->val) && helper(node->right, node->val, max_val);}
};

递归做法,需要保证整个左节点树都小于根节点,右节点大于根节点,所以需要传递两个极值作为范围。

http://www.dtcms.com/a/278380.html

相关文章:

  • 【第六节】docker可视化工具portainer安装
  • 【小白量化智能体】应用5:编写通达信股票交易指标及生成QMT自动交易Python策略程序
  • VR全景制作流程?什么是全景?
  • 从欧洲杯初现到世俱杯之巅:海信冰箱的“保鲜传奇”
  • 从零构建搜索引擎 build demo search engine from scratch
  • Javaweb使用websocket,请先连上demo好吧!很简单的!
  • Android系统的问题分析笔记 - Android上的调试方式 bugreport
  • Android展示加载PDF
  • 图机器学习(1)——图论基础
  • android tabLayout 切换fragment fragment生命周期
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | GithubProfies(GitHub 个人资料)
  • 如何改变音乐的音质kbps和采样率hz
  • HTML面试题
  • [spring6: Resource ResourceLoader]-加载资源
  • (三)OpenCV——图像形态学
  • 【算法深练】BFS:“由近及远”的遍历艺术,广度优先算法题型全解析
  • ubuntu透网方案
  • 多客户端-服务器(select,poll)
  • 使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)
  • Linux的相关学习
  • 20250714-day15
  • imx6ull-系统移植篇4——U-Boot 工程目录分析
  • ubuntu之坑(十八)——XML相关
  • 【机器学习深度学习】Ollama vs vLLM vs LMDeploy:三大本地部署框架深度对比解析
  • MIPI DSI (一) MIPI DSI 联盟概述
  • 智能Agent场景实战指南 Day 12:医疗咨询Agent设计模式
  • Python与MongoDB深度整合:异步操作与GridFS实战指南
  • Apache-web服务器环境搭建
  • 前端开发中的常见问题及解决方案
  • 前端基础之《Vue(22)—安装MongoDB》