@[TOC](letcode 分类练习 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度)

news2024/9/21 18:40:11

letcode 分类练习 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度

  • 226.翻转二叉树
  • 101. 对称二叉树
  • 104.二叉树的最大深度
  • 111.二叉树的最小深度

226.翻转二叉树

利用自底向上的遍历交换左子树和右子树

class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(!root) return nullptr;
        TreeNode* left = invertTree(root->left);
        TreeNode* right = invertTree(root->right);
        root -> left = right;
        root -> right = left;
        return root;
    }
};

101. 对称二叉树

如果是叶子结点返回true,左子树不等于右子树就返回false,然后递归看左子树和右子树也是否满足条件

class Solution {
public:
    bool check(TreeNode* left,TreeNode* right){
        if((left && !right) || (!left && right) || (left && right && left->val != right -> val))return false;
        if(!left && !right) return true;
        return check(left -> left, right -> right) && check(left -> right, right -> left);
    }
    bool isSymmetric(TreeNode* root) {
        if(!root) return true;
        return check(root->left, root -> right);
    }
};

104.二叉树的最大深度

还是递归转化为右子树和左子树的思想,递归转化条件为
d m a x = m a x { d m a x l e f t , d m a x r i g h t } + 1 d_{max} = max\{d_{max}^{left},d_{max}^{right}\} + 1 dmax=max{dmaxleft,dmaxright}+1

class Solution {
public:
    int maxDepth(TreeNode* root) {
        if(!root) return 0;
        return 1 + max(maxDepth(root -> left), maxDepth(root -> right));
    }
};

111.二叉树的最小深度


还是转换为左子树右子树的最小深度取min
d m a x = m i n { d m a x l e f t , d m a x r i g h t } + 1 d_{max} = min\{d_{max}^{left},d_{max}^{right}\} + 1 dmax=min{dmaxleft,dmaxright}+1

class Solution {
public:
    int minDepth(TreeNode* root) {
        if(!root) return 0;
        int left_depth = 1 + minDepth(root -> left);
        int right_depth = 1 + minDepth(root -> right);
        if(left_depth == 1)return right_depth;
        else if(right_depth == 1)return left_depth;
        return min(left_depth, right_depth);
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2051637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

后端Web之数据库(以MySQL为例)

目录 1.概述 2.MySQL 3.DDL 4.DML 5.DQL 1.概述 对于我们自己写的一些小功能,数据一般存储在文件中,比如XML文件。而在实际项目中,数据都是存放在数据库中的。数据库(DataBase )是一个存储数据的集合&#xff0c…

双剑合璧,网络无敌!Windows Server 2012 R2双网卡绑定实战教程

文章目录 双剑合璧,网络无敌!Windows Server 2012 R2双网卡绑定实战教程1 背景信息2 配置步骤2.1 登录服务器2.2 分别清除两块网卡的配置2.3 进入“本地服务器”界面2.4 进入“NIC组合”界面2.5 创建网卡绑定组2.6 设置新建组参数2.7 查看已创建的网卡组…

【计算机硬件蓝光光驱】

蓝光光驱(Blu-ray Disc Drive)是一种光盘驱动器,用于读取和写入蓝光光盘。蓝光光盘是一种高容量、高清晰度的光存储介质,用于存储视频、音频、数据等多种媒体内容。蓝光光驱的名称“蓝光”来源于其使用的蓝色激光光束,…

Windows 安装 及解决 tvm 无法打开 源 文件 “dmlc/logging.h“

如果你在编译 TVM 时遇到 dmlc/logging.h 文件缺失的问题,很可能是因为在克隆 TVM 仓库时没有包含其子模块,而这些子模块(如 dmlc-core)是通过 Git 管理的。解决步骤 安装 Git: 如果你还没有安装 Git,需要先…

ES6学习笔记(九)——class(类)

1. 封装 传统面向对象的编程序语言都是【类】的概念,对象都是由类创建出来,然而早期 JavaScript 中是没有类的,面向对象大多都是基于构造函数和原型实现的,但是 ECMAScript 6 规范开始增加了【类】相关的语法,使得 Ja…

虚幻5|AI视力系统,听力系统,预测系统(1)视力系统

继宠物伴随系统初步篇后续 虚幻5|AI巡逻宠物伴随及定点巡逻—初步篇-CSDN博客 一,听力系统 1.打开宠物ai的角色蓝图 2.选中ai感知组件 右侧细节,找到ai感知,添加感知配置,我们需要的是ai视力配置 3.选中左侧创建的ai感知组件&…

CLRerNet推理详解及部署实现(上)

目录 前言1. 概述2. 环境配置3. Demo测试4. ONNX导出初探5. ONNX导出优化6. ONNX导出总结结语下载链接参考 前言 继续我们的车道线检测任务,之前我们分享了基于 anchor 的 LaneATT 模型以及 CVPR2022 的 SOTA 方案 CLRNet,这里我们分享 WACV2024 中的一个…

如何在Linux系统上使用ONLYOFFICE文档编辑PDF文件

​对Linux用户来说,得益于各类免费PDF编辑器,编辑PDF文件从来都不是无解难题。 如果您需要为PDF文件添加注释、留下批注、编辑已有文本或添加新文本框、插入图片或形状、删除某些页面或永久删除页面,您始终可以找到合适的应用,轻…

有关JavaScript的函数定义和函数的两种声明方式

1.函数 函数是一段可重复执行的代码块,它可以接收参数,并返回结果。在JavaScript中,函数用于封装可重用的代码,提高代码的可读性和可维护性。 1.1 函数的定义 函数的定义包括以下几个部分: 函数名称:用…

Hive3:表性能优化-分区与分桶

一、分区 1、概念 我们知道,一个Hive表,对应的HDFS是一个文件夹。 那么,当数据非常多的时候,存放在一个文件夹中,后期进行查询操作会影响性能。 所以,Hive引入了分区管理的方式。 本质就是,在…

Datawhale X 魔搭 AI夏令营-AIGC方向-LoRA学习笔记

LoRA(Low-Rank Adaptation)是一种用于优化大规模预训练模型的微调技术,特别适用于在资源有限的情况下,对模型进行高效且低成本的微调。LoRA的核心思想是通过低秩分解方法,仅微调模型的少数参数,从而显著减少…

关于图像亮度相关的调试总结

1、问题背景 关于图像亮度的调试,是整个ISP中非常重要的一块,它决定了图像整体的亮度、对比度、细节、以及噪声,对人眼有非常直观的感受, 之前也就具体问题,整理过几篇图像亮度模块相关的调试总结: 关于图…

标题中有多少个字符(c语言)

1.//描述 //凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? //注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字 符数时,空格和换行符不计算在内。 //输入描述: //输入文件只有一…

【12】KMP和Manacher算法

目录 一.KMP算法解决的问题 二.Manacher算法解决的问题 基本概念 优化 一.KMP算法解决的问题 暴力求解复杂度O(N*M) next数组:next[i]表示arr[0...i-1]的前缀和后缀的最长公共长度。 Y位置失败,将前缀和后缀完全匹配,将前缀的部分和后缀对…

软件测试---接口自动化

一、pythonrequests模块 (1)requests全局观 安装:pip install requests 1.发送请求 ①requests.get() 发送get请求 ②requests.post() 发送post请求 data和json的区别:取绝于你需要传递的参数的类型。 files:文件上…

大学成长之路:如何从烧锅炉的逆袭成为FPGA大厂高管

如何从烧锅炉的逆袭成为FPGA大厂Sales Director 在即将到来的开学季,很多学子从高中生成为一个大学生,走入新的征程。大学生涯是人生的一个非常重要的阶段,如何度过大学4年的时光,并学有所成,是很多大学新生和家长思考…

Spring IoCDI(下)—DI的尾声

我们之前学习了控制反转IoC,接下来就开始学习依赖注入DI的细节。 依赖注入是一个过程,是指IoC容器在创建Bean时,去提供运行时所依赖的资源,而资源指的就是对象。我们使用 Autowired 注解,完成依赖注入的操作。简单来说…

AMBA-CHI协议详解(六)

AMBA-CHI协议详解(一) AMBA-CHI协议详解(二) AMBA-CHI协议详解(三) AMBA-CHI协议详解(四) AMBA-CHI协议详解(五) AMBA-CHI协议详解(六&#xff09…

JavaSocket编程+JDBC实战技术

一、JavaSocket编程 1.1HTTP协议 后端原理 2. 特点 同步:就是两个任务执行的过程中,其中一个任务要等另一个任务完成某各阶段性工作才能继续执行,如厨师A炒番茄,将葱花放入锅中,然后需要放入番茄,但是厨…

【自动驾驶】控制算法(二)三大坐标系与车辆运动学模型

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…