【Leetcode】101. 对称二叉树、104. 二叉树的最大深度、226. 翻转二叉树

news2024/11/23 5:14:37

 作者:一个喜欢猫咪的的程序员 

专栏:《Leetcode》

喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》

目录

101. 对称二叉树

 104. 二叉树的最大深度

 226. 翻转二叉树


101. 对称二叉树

101. 对称二叉树icon-default.png?t=M85Bhttps://leetcode.cn/problems/symmetric-tree/

题目描述:

给你一个二叉树的根节点 root , 检查它是否轴对称。


示例:

 


思路:

可以让左子树跟右子树比较,让左子树的左节点和右子树的右节点作比较。让左子树的右节点和右子树的左节点作比较。 递归循环就可以完成。


代码实现:

bool _isSymmetric(struct TreeNode* root1,struct TreeNode* root2)
 {
     if(root1==NULL&&root2==NULL)
     return true;
     if(root1==NULL||root2==NULL)
     return false;
     if(root1->val!=root2->val)
     return false;
     return _isSymmetric(root1->left,root2->right)&&_isSymmetric(root1->right,root2->left);
 }
bool isSymmetric(struct TreeNode* root){
    return _isSymmetric(root->left,root->right);
}

 104. 二叉树的最大深度

104. 二叉树的最大深度icon-default.png?t=M85Bhttps://leetcode.cn/problems/maximum-depth-of-binary-tree/

题目描述:

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。


 示例:


思路:

可参考我的另外一篇博客(数的高度部分): http://t.csdn.cn/MQd0j


代码实现:

int TreeHeight(struct TreeNode* root)
{
	if (root == NULL)
		return 0;
	int left = TreeHeight(root->left);
	int right = TreeHeight(root->right);
	return left > right ? left+1 : right+1;
}
int maxDepth(struct TreeNode* root){
    return TreeHeight(root);
}

 226. 翻转二叉树

226. 翻转二叉树icon-default.png?t=M85Bhttps://leetcode.cn/problems/invert-binary-tree/

 题目描述:

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。


示例: 


思路:

让左右节点交换地址,递归下去。


代码实现: 

struct TreeNode* invertTree(struct TreeNode* root){
    if(root)
    {
        if(root->left||root->right)
        {
          struct TreeNode*tmp=root->left;
          root->left=root->right;
          root->right=tmp;
          invertTree(root->left);
          invertTree(root->right);
        }
    }
  return root;
}

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

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

相关文章

DJ11 8086系列处理器(第一节课)

目录 一、8086/8088微处理器 二、8086/8088CPU的特点 1. 指令流水线 2. 内存分段管理 3. 支持多处理器系统 三、8088 CPU外部引脚及功能 1. 最小模式下的引脚 2. 最大模式下的引脚 四、8088/8086 CPU 的工作时序 1. 基本概念 2. 总线周期 一、8086/8088微处理器 二、…

软考中级系统集成项目管理工程师怎么自学备考

1、考试内容是什么? 2、备考前要准备什么? 3、如何高效备考? 一、考试内容是什么? 本考试设置的科目包括: (1)系统集成项目管理基础知识,考试时间为150分钟,笔试&am…

IB体育评估哪些内容?

"IB体育"这个词的内涵太广了,覆盖的课程也很多!这个IB体育是一般体育课还是某个具体的IB科目呢?是MYP阶段的体育还是DP阶段的呢?其实很多人都是很懵,通过收集资料,可以分享一下,仅供参…

2022年虚拟电厂行业研究报

第一章 行业概况 虚拟电厂(VPP, Virtual Power Plant)本质上是将分布式电源(发电)、可控负荷(用电)、储能等利用计算机通信网络技术将其聚合成一个虚拟的集中式电厂,来为电网提供需求侧响应的“…

4个封神的电脑工具,颠覆你对免费白嫖的认知,干货奉上

闲话少说,直上干货。 1、TinyWow TinyWow虽说是国外网站工具,但不得不承认真的无敌好用,收纳工具超200个,完全免费,无任何弹屏广告,更为良心的是,不需要注册登录,随用随走&#xff0…

专业的方案公司阐述智能硬件产品开发的全过程

现在市场上的方案公司太多,让人应接不暇,当我们要开发一款智能硬件产品的时候,我们要如何去选择方案公司呢?又怎样判断方案公司是否则专业呢?下面沐渥带大家一起来了解下智能硬件产品开发的全过程,大家就知…

Ubuntu 18.0.4 SonarQube-7.1.x 安装教程 以及错误总结

Ubuntu 18.0.4 SonarQube-7.1.x 安装教程 docker安装未成功 zip安装 1. 下载地址 sonarQube最新版下载地址:(最新版不支持mysql)https://www.sonarqube.org/downloads/7.1版本下载地址:​ ​https://binaries.sonarsource.com…

【UE4 第一人称射击游戏】10-添加冲刺功能

上一篇: 【UE4 第一人称射击游戏】09-添加蹲伏功能 本篇效果: 步骤: 1.在“Character”文件夹内添加一个混合空间 骨架选择“Swat_Skeleton” 命名为“Sprint_BS” 双击打开“Sprint_BS”,将水平和垂直坐标名称分别设为“Direct…

【java】HashMap底层原理实现原理及面试题

目录一.哈希表(散列)1.什么是哈希表2.什么是哈希冲突(面试题)3.解决哈希冲突的方法(面试题)(1) 开放地址法① 线性探查②二次探查③随机探查(2) 再哈希法(3) 链地址法(4)建立公共溢出区二.HashMap1.HashMap的hash()算法(面试)(1)为什么不是h key.hashCode()直接返回&#xff0…

绘制菜单符号的技法

在上一篇文章中,我们了解了如何绘制主题化的和原始未主题化的单选按钮,我曾提到,绘制菜单符号会更加复杂一些。复杂之处在于,这些符号是通过单色位图实现的,而不是漂亮的全彩色位图。 首先,我们将通过一种错…

linux内核调度子系统随笔(一)

调度子系统组件(1) 调度类用于判断接下来运行哪个进程,内核支持不同的调度策略(完全公平调度,实时调度);调度类使得能够以模块化方法实现这些策略; (2) 在选中将要选择的进程后,必须执行底层任务切换;需要与cpu的紧密交互&#x…

信息安全管理体系

环境迁移 Platfor m Ops for AI 作为整合了 DataOps、MLOps、ModelOps 的复杂技术平台,在项目开发时仅使用一套系统无法支撑平台的稳定搭建,往往需要开发系统、集成测试系统、正式 环境系统在项目生命周期 中协作配合。将表、索引、并发程序、配置内容等…

HTML5 新增属性

文章目录HTML5 新增属性公共属性hidden属性draggable属性contenteditable属性data-*属性input元素新增属性autocomplete属性autofocus属性placeholder属性required属性pattern属性form元素新增属性novalidate属性HTML5 新增属性 公共属性 HTML5新增的常见公共属性有4个&#…

在今年的数字生态大会上,云原生数据库前进了一大步

云计算时代,数据库上云已成为产业数字化转型的重要动力。近期,在2022腾讯全球数字生态大会云原生数据库技术探索专场上,腾讯云分享了在云原生数据库领域的技术演进与探索,并就其在不同行业场景中的最佳实践进行了详细讲解&#xf…

【C++初阶】stack、queue和priority_queue的模拟实现

文章目录简介stackqueuepriority_queuestack的模拟实现成员变量emptysizetoppushpopqueue的模拟实现成员变量emptysizetoppushpoppriority_queue的模拟实现成员变量emptysizetoppushpop仿函数完整版代码stack.hqueue.hpriority_queue.htest.cpp简介 stack、queue和priority_qu…

四、SpringBoot Starter组件详解

starter组件实际上就是能够实现自动装配的jar包。 1.starter组件创建流程 假设我现在要集成redis,要拿到redisTemplate对象,怎么做呢? 1.引springboot包; 2.创建RedisTemplate类; 3.写配置类; 4.创建spring.factories文件; 5.打成jar包。 示例如下: 1.创建maven项目…

我的世界MOD制作(2)|| 你的第一个MOD

正文:I. 开发环境配置 我们需要一个带mixin的forge开发环境,这一步相当折磨人,网络不好的话半天时间都得砸这上面,但是不要灰心,过了这个坎接下来基本是顺风顺水。 1. 下载资源 & 修改build.gradle 首先去forge官网…

从三万英尺看全链路灰度

作者:卜比 全链路灰度是微服务领域,很实用的企业级场景下的技术能力。 从本期开始,我们将通过《全链路灰度:自顶向下的方法》的系列文章,由远及近的剖析全链路灰度全貌,系列文章分为 4 篇: 《…

无需数据库的笔记flatnotes

本文完成于 10 月底; 什么是 flatnotes? flatnotes 是一个自托管的、无数据库的笔记 Web 应用程序,它利用文件夹存储 Markdown 文件。 官方演示站点:https://demo.flatnotes.io/ 前言 本文介绍的软件很简单,但是有两…

保姆级教学——Python+Pygame怎么实现吃豆豆游戏

耽搁十几天的时间,我顺利的从阳转阴啦, 以后的日子一切恢复正常,好好工作,积极分享。希望在座的小伙伴阳了的全部健康转阴,没阳的全部不会变阳,新的一年,一切顺顺利利。 不知道最近大家学习得怎…