| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 力扣每日一题——NO.98——验证二叉搜索树 -> 正文阅读 |
|
[数据结构与算法]力扣每日一题——NO.98——验证二叉搜索树 |
题目描述:
思路求解 这里我们首先要了解一下什么是二叉搜索树,我刚拿到这个定义误以为只需要根结点的左结点小于当前结点和右结点大于当前结点就行了 所以我第一次写出了以下的错误代码 这是我脑中构思出的判断思路
果然没有给我过
所以应该不是代码的问题肯定是我对搜索二叉树的理解出现了问题 仔细观察测试用例,发现与上面的树特征差不多 到底是哪里出现问题了呢? 我们需要重新读一下完全二叉树的定义,我当时特地百度了一下完全二叉树的官方定义
注意这里划重点,是子树的所有结点! 所以当时我应该犯了这种错误 这个3结点比8小是没有问题的,但它站在根结点5的角度来说,应该比5大才对!
那么,既然每个结点是有严格的范围要求的,那我们可以考虑:在检查每一个结点的时候,检查它是否在它应该在的范围内 就拿3这个结点来说 它的范围就应该在3-8之间 我们在这里可以调用递归用的子函数,传参传一个最小范围和最大范围,每次递归左树的时候,缩小它的最大值,调用右数缩小它的最小值 画图求解:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:22:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |