前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >判断二叉树是否为排序二叉树

判断二叉树是否为排序二叉树

作者头像
lexingsen
发布于 2022-02-24 11:13:12
发布于 2022-02-24 11:13:12
27900
代码可运行
举报
文章被收录于专栏:乐行僧的博客乐行僧的博客
运行总次数:0
代码可运行

排序二叉树的递归定义: (1)空树。 (2)是由根节点、左子树和右子树组成。满足左子树上的所有节点的值都小于根节点的值,右子树上的所有节点的值都大于根节点的值。同时左子树和右子树都是排序二叉树(递归定义)。

老套路,还是根据定义来判断。首先如果一个树是空树,其必是一棵BST。如果不为空树,看是否满足条件二,如果满足则递归的看其两棵子树是否满足BST的定义。

代码实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
public:
    bool isValidBST(TreeNode* root) {
      if (!root) return true;
      TreeNode *left = root->left;
      TreeNode *right = root->right;
      while (left) {
        if (root->val  <= left->val) return false;
        left = left->right;
      }
      while (right) {
        if (root->val >= right->val) return false;
        right = right->left;
      }
      return isValidBST(root->left) && isValidBST(root->right);
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
云实验室(5) - kubesphere&k8s
劣势 : 过时了流水线,改用fleet进行devops尝试,暂不是很成熟 优点 : rancher更偏向运维使用,多集群管理和基于web UI 半自动快速建立集群相当的方便,便于大规模集群使用.
惊羽-布壳儿
2022/06/15
7460
云实验室(5) - kubesphere&k8s
NetworkX,网络结构图最强绘制工具·····
今天给大家介绍Python语言中绘制网络结构图的可视化拓展工具-NetworkX包。NetworkX提供了丰富的数据结构和函数,使得用户能够轻松地构建、分析和可视化复杂网络。
DataCharm
2023/10/17
2.1K0
NetworkX,网络结构图最强绘制工具·····
使用JointJS绘制流程图1
依赖:jquery,lodash,backbone 如果使用自动排版,需要添加依赖:dagre,graphlib
路过君
2021/12/07
9270
使用JointJS绘制流程图1
[950]networkx(图论)是什么
官方文档:https://www.osgeo.cn/networkx/reference/classes/graph.html#
周小董
2021/03/08
4.1K0
Python社交网络——NetworkX入门
实例来自:https://www.cnblogs.com/yu-liang/p/9117643.html
里克贝斯
2021/05/21
1.6K0
Python社交网络——NetworkX入门
【Java-数据结构】Java 链表面试题上 “最后一公里”:解决复杂链表问题的致胜法宝
学无止尽5
2025/01/24
770
【Java-数据结构】Java 链表面试题上 “最后一公里”:解决复杂链表问题的致胜法宝
大数据Flink进阶(九):集群基础环境搭建
Flink可以运行在所有类unix环境中,例如:Linux,Mac OS 和Windows,一般企业中使用Flink基于的都是Linux环境,后期我们进行Flink搭建和其他框架整合也是基于linux环境,使用的是Centos7.6版本,JDK使用JDK8版本(Hive版本不支持JDK11,所以这里选择JDK8),本小节主要针对Flink集群使用到的基础环境进行配置,不再从零搭建Centos系统,另外对后续整合使用到的技术框架也一并进行搭建,如果你目前已经有对应的基础环境,可以忽略本小节,Linux及各个搭建组件使用版本如下表所示。
Lansonli
2023/03/30
1.3K0
大数据Flink进阶(九):集群基础环境搭建
omnet++,veins,sumo使用多应用层实现车辆和行人的模拟
NOTE1:结点属性type="traffic_light" 意味着车辆和行人在此遵守信号灯指引,而type="unregulated"意味着车辆和行人在此不改变运动状态,即可能出现碰撞。
PERSEUS
2023/11/03
7020
LeetCode中级算法-链表
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
码农帮派
2020/12/31
4010
算法系列之搜索算法-广度优先搜索BFS
随着每年"金三银四"招聘季的到来,许多求职者开始积极备战面试。在众多面试环节中,机试往往是不可或缺的一环,而算法能力更是机试考核的重点。为此,我们特别推出算法系列文章,帮助大家系统复习算法知识。今天,我们将首先探讨搜索算法中的重要内容——广度优先搜索(BFS)。
修己xj
2025/03/12
1680
算法系列之搜索算法-广度优先搜索BFS
算法系列之搜索算法-深度优先搜索DFS
随着每年"金三银四"招聘季的到来,许多求职者开始积极备战面试。在众多面试环节中,机试往往是不可或缺的一环,而算法能力更是机试考核的重点。为此,我们特别推出算法系列文章,帮助大家系统复习算法知识。今天,我们将首先探讨搜索算法中的重要内容——深度度优先搜索(DFS)。
修己xj
2025/03/12
1620
算法系列之搜索算法-深度优先搜索DFS
一点networkx的使用技巧
一个用于复杂网络,图结构的搭建,操作,与研究的python库。由于通常在python中这样导入:
从不摸鱼的van
2023/10/09
6760
敲代码前先构思一下-Graphviz-03-小示例
系统:Windows 7 软件版本:Graphviz2.38 好久不见,接下来会有几篇文章讲解dot语言 今天介绍一个简单的案例 效果图 对应dot代码 digraph test{ node [
zishendianxia
2019/10/23
4700
敲代码前先构思一下-Graphviz-03-小示例
Redis-05Redis数据结构--链表( linked-list)
由于是双向链表,所以只能够从左到右,或者从右到左地访问和操作链表里面的数据节点。 但是使用链表结构就意味着读性能的丧失,所以要在大量数据中找到一个节点的操作性能是不佳的,因为链表只能从一个方向中去遍历所要节点,比如从查找节点 10000 开始查询,它需要按照节点1 、节点 2、节点 3……直至节点 10000,这样的顺序查找,然后把一个个节点和你给出的值比对,才能确定节点所在。如果这个链表很大,如有上百万个节点,可能需要遍历几十万次才能找到所需要的节点,显然查找性能是不佳的。
小小工匠
2021/08/17
7050
[源码解析] 深度学习流水线并行 PipeDream(3)--- 转换模型
在前文中,我们介绍了PipeDream的总体架构,Profile阶段和计算分区阶段。本文我们介绍模型转换阶段。
罗西的思考
2021/09/10
5470
[源码解析] 深度学习流水线并行 PipeDream(3)--- 转换模型
Python数据分析 利用NetworkX绘制网络图
NetworkX 是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。networkx支持创建简单无向图、有向图和多重图;内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富。主要用于创造、操作复杂网络,以及学习复杂网络的结构、动力学及其功能。用于分析网络结构,建立网络模型,设计新的网络算法,绘制网络等等。
叶庭云
2020/09/17
8K0
Python数据分析    利用NetworkX绘制网络图
kafka运维之broker扩容
   最近公司的3节点kafka集群,发现有2个节点所在的刀箱交换机有故障风险,会随机性的出现端口up/down的情况。 因此需要临时将这2个broker迁移出来,等交换机修复后再迁移回去。
保持热爱奔赴山海
2019/09/17
7830
文心一言 VS 讯飞星火 VS chatgpt (310)-- 算法导论22.2 8题
八、我们将一棵树$T=(V,E)$的直径定义为$max_{(u,v)∈V}δ(u,v)$,也就是说,树中所有最短路径距离的最大值即为树的直径。请给出一个有效算法来计算树的直径,并分析算法的运行时间。如果要写代码,请用go语言。
福大大架构师每日一题
2024/08/16
1460
文心一言 VS 讯飞星火 VS chatgpt (310)-- 算法导论22.2 8题
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
​上篇已经大概讲述大数据组件版本和集群矩阵配置说明,有不清楚的同学,可以阅读上一篇
Lansonli
2022/07/31
1.4K0
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
Data Structures and Algorithms Basics(006):Link list
Link list 目录: 第一部分:创建链表 1,python实现一个链表 第二部分:链表练习题 2,删除节点 3,查找中间元素 4,是否有环 5,给定一个循环链表,查找环的开始节点 6,删除链表的倒数第N个节点 7,分裂成两个链表:对半分 8,合并两个有序链表:返回一个新的有序列表 9,查找链表交集开始的节点 10,链表的插入排序 11,链表排序(O(n*lgn)) 12,对链表分区:以x的节点为基准 13,反转链表(1) 14,反转链表(2) 15,反转链表(3) 16,反转链表(4) 17,判断是否
用户5473628
2019/08/08
3820
推荐阅读
相关推荐
云实验室(5) - kubesphere&k8s
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档