二叉树判断

简介: 二叉树判断

Binary tree judgment

判断完全二叉树

思路

使用层序遍历的思想

  • 遇到节点左为空且右不为空,则不是
  • 遇到一个叶子节点,其后必全是叶子节点,否则不是

实现

bool isCBT(Node* root)
{
    if(root != null)
    {
        queue<Node*> Nodeque;
        Nodeque.push(root);
        bool leaf = false;
        while(!Nodeque.empty())
        {
            Node* Front = Nodeque.front();
            Nodeque.pop();
            /******遇到子节点后,后续必全是子节点******/
            if(leaf && (Front->left != null || Front->right != null))
            {
                return false;
            }
            /******左为空,又不为空,不是完全二叉树******/
            if(Front->left == null&&Front->right != null)
            {
                return false;
            }
            if(Front->left) Nodeque.push(Front->left);
            if(Front->right) Nodeque.push(Front->right);
            /******遇到第一个子节点******/
            if(!Front->left && !Front->right) leaf = true;
        }
    }
    return true;
}


判断搜索二叉树

数据

使用preValue表示左子树最后处理的数

思路

实现

static int preValue = -1;
bool isSBT(Node* root)
{
    if(root == null) return true;
    bool isSBTleft = isSBT(root->left);
    if(!isSBTleft) return false;
    if(root->value <= preValue) return false;
    preValue = root->value;
    return isSBT(root->right);
}

总结

需要结合这两种二叉树的特性进行判断,考验对其结构的理解

目录
相关文章
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
1051 1
|
机器学习/深度学习 文字识别 算法
文字识别OCR技术在表格识别方面的确已经取得了一些进展
文字识别OCR技术在表格识别方面的确已经取得了一些进展【1月更文挑战第24天】【1月更文挑战第117篇】
766 3
|
存储 弹性计算 算法
手把手教你使用ECS服务器搭建RssHub服务,实现“万物皆可RSS”
在当今时代,大部分人已经无法离开互联网了,由于大数据的加持,各大平台一直在竭尽全力的想我们推送我们所感兴趣的内容,但是,这样势必会造成信息茧房。是使得我们的视野越来越窄,那么有没有什么办法能够解决这个问题呢?有!在互联网发展的早期,有一个叫做RSS(简易信息聚合)的东西,这个工具可以帮你整合一些网站上的内容,当网站内容发生更新时给与通知,有点类似一个关注列表,但是这个列表中可以包含各大平台的内容。使用RSS,你可以订阅自己喜欢的内容,从而拒绝各大平台的算法推荐。给你一个“自己决定看什么的机会”!
3288 2
手把手教你使用ECS服务器搭建RssHub服务,实现“万物皆可RSS”
|
机器学习/深度学习 人工智能 算法
【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题
【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题
686 0
|
6月前
|
人工智能 网络安全 调度
游戏盾SDK技术深度解析:DDoS防护架构与开源实现原理
随着游戏产业规模突破2000亿美元大关,网络安全威胁日益严峻。传统基于高防机房的防护方案在应对现代DDoS攻击时暴露诸多局限性:TCP端口CC攻击过滤效果不佳、高延迟影响用户体验、成本随攻击流量线性增长等。游戏盾SDK技术通过分布式架构和端网协同防护机制,实现了防护理念的革命性突破。
408 4
|
8月前
|
人工智能 边缘计算 安全
云栖发布深度解读|以边缘原生定义 AI 时代的开发与交付
阿里云 ESA 「函数和Pages」云栖大会发布会
云栖发布深度解读|以边缘原生定义 AI 时代的开发与交付
|
9月前
|
人工智能 缓存 并行计算
用数学重构 AI的设想:流形注意力 + 自然梯度优化的最小可行落地
本文提出两个数学驱动的AI模块:流形感知注意力(D-Attention)与自然梯度优化器(NGD-Opt)。前者基于热核偏置,在局部邻域引入流形结构,降低计算开销;后者在黎曼流形上进行二阶优化,仅对线性层低频更新前置条件。二者均提供可复现代码与验证路径,兼顾性能与工程可行性,助力几何感知的模型设计与训练。
712 1
|
4月前
|
机器学习/深度学习 消息中间件 缓存
对比Palantir Foundry、UINO、字节Data Agent、京东JoyDataAgent的实时处理架构
本文深度对比Palantir、UINO、字节Data Agent与京东JoyDataAgent四大平台的实时处理能力,涵盖延迟、实施难度、维护成本及场景适配性。揭示传统指标预置与本体语义架构的本质差异,助力企业科学选型。(239字)
|
8月前
|
存储 缓存 监控
基于淘宝商品详情 API 的竞品监控系统搭建:价格 / 库存 / 促销实时追踪
淘宝商品详情 API 的竞品监控系统搭建:价格 / 库存 / 促销实时追踪
|
存储 算法 编译器
【C/C++ 原始指针】深入理解 C 语言指针:从基础到高级应用
【C/C++ 原始指针】深入理解 C 语言指针:从基础到高级应用
431 0

热门文章

最新文章