Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Leetcode】相同的树、对称二叉树、另一颗树的子树
给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。
P_M_P
2024/01/18
1430
【Leetcode】相同的树、对称二叉树、另一颗树的子树
数据结构——二叉树经典OJ题
                                a. 两树相等为子树。
迷迭所归处
2024/11/19
530
数据结构——二叉树经典OJ题
二叉树在线OJ
本题目的要求是: 输入一个数组,里面存放了若干个字符,#代表了空指针,数组中的顺序是 是先序遍历,然后要求你用中序输出 首先我们要做的就是构造结构体:
ahao
2024/03/19
1430
二叉树在线OJ
二叉树:我对称么?
对于二叉树是否对称,要比较的是根节点的左子树与右子树是不是相互翻转的,理解这一点就知道了「其实我们要比较的是两个树(这两个树是根节点的左右子树)」,所以在递归遍历的过程中,也是要同时遍历两棵树。
代码随想录
2020/10/10
3780
二叉树:我对称么?
二叉树基础oj练习(单值二叉树、相同的树、二叉树的前序遍历)
是Nero哦
2024/01/18
1140
二叉树基础oj练习(单值二叉树、相同的树、二叉树的前序遍历)
相同的树 单值二叉树 二叉树的最大深度
输入:p = [1,2,3], q = [1,2,3] 输出:true 示例 2:
南桥
2024/01/26
1050
相同的树 单值二叉树 二叉树的最大深度
【算法专题】二叉树中的深搜(DFS)
深度优先遍历(DFS,全称为 Depth First Traversal),是我们树或者图这样的数据结构中常用的⼀种遍历算法。这个算法会尽可能深的搜索树或者图的分支,直到一条路径上的所有节点都被遍历完毕,然后再回溯到上一层,继续找⼀条路遍历。
YoungMLet
2024/03/01
3010
二叉树OJ题
 思路:判断根节点是否为空,若为空,则返回 true , 若不为空,看根节点的左孩子是否为空,若为空,则销毁该函数栈帧,返回根节点,若根节点的左孩子不为空,再比较根节点的值是否和左孩子的值相同,看根节点的右孩子是否为空,若为空,则销毁该函数栈帧,返回根节点,若不为空,再比较根节点的值和右孩子的值,若三个结点的值都相等,再递归根节点的左子树,重复刚才的过程......
用户11290648
2024/09/25
890
二叉树OJ题
LeetCode-二叉树OJ题
先判断这棵树是否为空,如果是空树则是true。再判断左子树是否为空,并且左子树的值val和当前节点的val不相同,如果这左子树不为空且val不等于root的val则返回false,再使用相同方式判断右子树。最后递归一下左右子树即可,只有左右子树有一个返回false,则整体返回false。
用户10923087
2024/01/23
1260
LeetCode-二叉树OJ题
【Leetcode -965.单值二叉树 -572.另一颗树的子树】
题目:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。
YoungMLet
2024/03/01
1020
【Leetcode -965.单值二叉树 -572.另一颗树的子树】
【LeetCode-二叉树训练】
思路:通过root与其两个子节点判断是否相等,为了通过这个步骤遍历树的所有节点,采用递归方式去遍历即可
每天都要进步呀
2023/03/28
1750
【LeetCode-二叉树训练】
二叉树问题(一)-LeetCode 110、617、101、814、655、98、654(递归思路)
给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1
算法工程师之路
2019/12/24
4800
题目练习之二叉树那些事儿
既然这里涉及到保存数据的比较,那么肯定需要遍历我们的二叉树了,具体怎么比较呢?我们给出思路~
用户11352420
2024/11/07
670
题目练习之二叉树那些事儿
【初阶数据结构篇】二叉树OJ题
根节点与左右孩子的数值进行比较,如果相等依次递归左右子树,如果为空,或者两者对应的值相等,则返回true。若不相等则直接返回false。
熬夜学编程的小王
2024/11/20
620
【初阶数据结构篇】二叉树OJ题
【二叉搜素树】——LeetCode二叉树问题集锦:6个实用题目和解题思路
用户11286421
2024/11/21
4570
【二叉搜素树】——LeetCode二叉树问题集锦:6个实用题目和解题思路
【数据结构和算法】--- 二叉树(5)--二叉树OJ题
题目描述: 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返回 false。
用户11029269
2024/03/19
1270
【数据结构和算法】--- 二叉树(5)--二叉树OJ题
【初阶数据结构篇】二叉树算法题
本题如换做中序和后序遍历,直接调换插入数据顺序即可,其它思路都一样 中序遍历题目 后序遍历题目
半截诗
2024/10/09
1250
【初阶数据结构篇】二叉树算法题
刚学完二叉树,来试试这些oj题练练手吧!
二叉树 主要就是玩递归,相信大家学完 二叉树 以后,对递归有了更加深层的理解,可以试着做几道oj题,练一下手.
初阶牛
2023/10/14
1550
刚学完二叉树,来试试这些oj题练练手吧!
二叉树基础oj练习(对称二叉树、翻转二叉树、另一棵树的子树二叉树的构建及遍历)
是Nero哦
2024/01/18
1510
二叉树基础oj练习(对称二叉树、翻转二叉树、另一棵树的子树二叉树的构建及遍历)
二叉树模板套题——相同的树的应用
力扣100. 相同的树 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p = [1,2,3], q = [1,2,3] 输出:true 示例 2: 输入:p = [1,2], q = [1,null,2] 输出:false 示例 3: 输入:p = [1,2,1], q = [1,1,2] 输出:false /** * Definition for a binary tree nod
lovevivi
2022/12/05
2080
二叉树模板套题——相同的树的应用
推荐阅读
相关推荐
【Leetcode】相同的树、对称二叉树、另一颗树的子树
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档