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

二叉搜索树的判断(双指针解决)

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

class Solution {
public:TreeNode*pre=NULL;bool isValidBST(TreeNode* root) {if(root==NULL){return true;}bool left=isValidBST(root->left);if(pre!=NULL&&pre->val>=root->val){return false;}pre=root;bool right=isValidBST(root->right);return left&&right;}
};

根据二叉搜索树的定义,左子树的所有值小于根节点的值,右子树的所有值大于根节点,采用中序遍历的方式,判断左子树的值是否小于根节点,如果小于根节点则返回true,大于则返回false。

要想要比较两个值的大小,应想到应用双指针的解法,采用中序遍历的方式,定义布尔值储存左子树的情况,将每一次的pre的值定义为前一次遍历到的节点,在左子树遍历结束,开始进行判断,如果前一次遍历到的左节点大于等于根节点的值,则返回false。最后如果左右子树都返回true,结果才为true。

http://www.xdnf.cn/news/258823.html

相关文章:

  • 深度残差网络ResNet
  • Controller层接收参数方式
  • 瑞萨 EZ-CUBE2 调试器
  • AI赋能新媒体运营:效率提升与能力突破实战指南
  • ZYNQ工业级串口方案:AXI UART 16550扩展RS-485实战(自动方向控制+Linux驱动)
  • AI大模型-微调和RAG方案选项
  • 友元函数和友元类
  • 【学习笔记】深入理解Java虚拟机学习笔记——第1章 走进Java
  • 4.1 模块概述
  • JavaScript基础-逻辑运算符
  • 【质量管理】现代TRIZ问题识别中的功能分析——组件分析
  • 网站怎样备份网站,备份网站数据的方法
  • 正弦波、方波、三角波和锯齿波信号发生器——Multisim电路仿真
  • re题(52)BUUCTF-[FlareOn5]Minesweeper Championship Registration
  • 深度理解linux系统—— 进程优先级
  • 深入理解C++构造函数:从入门到实践
  • AXI中的burst有几种?都用在什么场景中
  • 复刻低成本机械臂 SO-ARM100 舵机配置篇(WSL)
  • HTML5+JavaScript实现连连看游戏之二
  • [预备知识]6. 优化理论(二)
  • Codeforces Round 1022 (Div. 2) A ~ C
  • 【AI面试准备】数据治理与GDPR脱敏机制构建
  • 一键暂停Windows更新工具
  • 数字智慧方案6186丨智慧应急指挥解决方案(43页PPT)(文末有下载方式)
  • VGG网络模型
  • 自监督学习的学习笔记
  • Python 数据智能实战 (7):智能流失预警 - 融合文本反馈
  • git问题记录-如何切换历史提交分支,且保留本地修改
  • 安卓程序打包与发布
  • 不小心误删了文件,找Windows数据恢复工具来帮忙