【每日力扣】543. 二叉树的直径与101. 对称二叉树

在这里插入图片描述

🔥 个人主页: 黑洞晓威
😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害

543. 二叉树的直径

给你一棵二叉树的根节点,返回该树的 直径

二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root

两节点之间路径的 长度 由它们之间边数表示。

解题思路

  1. 递归计算深度: 使用递归计算每个节点的左子树深度和右子树深度,然后返回以该节点为根节点的子树的深度。
  2. 更新直径: 在递归过程中更新直径,直径值为左子树深度加右子树深度的最大值。
  3. 结果返回: 最终得到的直径就是二叉树的直径。
image-20240508112834385

代码实现

class Solution {int diameter = 0;public int diameterOfBinaryTree(TreeNode root) {calculateDepth(root);return diameter;}private int calculateDepth(TreeNode node) {if (node == null) {return 0;}int leftDepth = calculateDepth(node.left);int rightDepth = calculateDepth(node.right);diameter = Math.max(diameter, leftDepth + rightDepth);return Math.max(leftDepth, rightDepth) + 1;}
}

101. 对称二叉树

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

image-20240508112906353

解题思路

  1. 定义一个递归函数,比较左右子树是否镜像对称。
  2. 递归地判断左右节点是否镜像对称,即左子树的左节点与右子树的右节点比较,左子树的右节点与右子树的左节点比较。
  3. 如果当前节点为空,返回 true。如果左右子树其中一个为空或者值不相等,返回 false。

代码实现

class Solution {public boolean isSymmetric(TreeNode root) {if (root == null) {return true;}return isMirror(root.left, root.right);}private boolean isMirror(TreeNode left, TreeNode right) {if (left == null && right == null) {return true;}if (left == null || right == null) {return false;}return (left.val == right.val)&& isMirror(left.left, right.right)&& isMirror(left.right, right.left);}
}

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

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

相关文章

nginx--系统参数优化telenct

系统参数 在生产环境中,根据自己的需求在/etc/sysctl.conf来更改内核参数 net.ipv4.ip_nonlocal_bind 1 允许非本地IP地址socket监听 net.ipv4.ip_forward 1 开启IPv4转发 net.ipv4.tcp_timestamps 0 是否开启数据包时间戳 net.ipv4.tcp_tw_reuse 0 端⼝口复⽤…

idea2023专业版安装破解+maven配置教程

前言 上一篇文章已经介绍了maven在Win10系统的安装配置教程。基于Win10的maven配置环境,本篇文章将介绍idea2023的安装破解教程及maven在idea2023的配置教程(同时会将maven在idea2023的配置教程内容补充至上一篇文章)。 一、idea2023下载安…

Java零拷贝技术实战

文章目录 引入传统IO内存映射mmap文件描述符sendFile测试总结 引入 为什么要使用零拷贝技术? 传统写入数据需要4次拷贝,如下图: 传统IO import java.io.*; import java.net.Socket;public class TranditionIOClient {private static fina…

sh包装脚本

两个脚本,运行的时间间隔分别是一分钟和五分钟,放入到sh文件中,挂在后代,脚本里面的路径最好是绝对路径。 新建sh文件 新建 run_test.sh 文件,使其可以运行两个不同的 Python 脚本,一个每分钟运行一次,另一个每五分钟运行一次。下面是修改后的 run_test.sh 文件的示例:…

机器学习:人工智能中实现自动化决策与精细优化的核心驱动力

🔒文章目录: 💥1.概述 ❤️2.机器学习基本原理 🛤️2.1定义与关键概念 🛣️2.2 机器学习算法 ☔3.自动化决策中的机器学习应用 🚲4.精细优化与机器学习的结合 👊5.挑战与前景 💥1.概述 …

【WEB前端2024】简单几步制作web3d《萌宠星球》智体节点模板(2)

【WEB前端2024】简单几步制作web3d《萌宠星球》智体节点模板(2) 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体…

21 使用Hadoop Java API读取序列化文件

在上一个实验中我们筛选了竞赛网站日志数据中2021/1和2021/2的数据以序列化的形式写到了hdfs上。 接下来我们使用Java API 读取序列化的数据保存到磁盘中。 其他命令操作请参考:16 Java API操作HDFS-CSDN博客 1.我直接在上一个项目中test/java目录下创建com.maidu.s…

鸿蒙 Next 模拟器 体验

参加华为社区相关Next 的活动,只要申请通过就可以下载模拟器。整个过程稍微慢些,大家可以根据活动相关信息,加入微信群。跟踪催促进度。争取早日体验 next 。 目前模拟器里边还是空空的,没有什么内置 APP ,但是足够大…

net7部署经历

1、linux安装dotnet命令: sudo yum install dotnet-sdk-7.0 或者直接在商店里安装 2、配置反向代理 127.0.0.1:5000》localhost 访问后报错 原因:数据表驼峰名, 在windows的数据表不区分大小写,但是在linux里面是默认区分的&…

【xxl-job | 第三篇】SpringBoot整合xxl-job

文章目录 3.SpringBoot整合xxl-job3.1定时任务服务配置3.1.1导入maven依赖3.1.2yml配置3.1.3XxlJobConfig配置类3.1.4定时任务类 3.2xxl-job配置3.2.1新增执行器3.2.2新增任务3.2.3执行任务3.2.4查看日志3.2.5查看任务后台日志 3.3小结 3.SpringBoot整合xxl-job 3.1定时任务服…

第一个C++项目

文章目录 一、新建项目1.打开软件,选择“创建新项目”2.新建项目栏中,按自己的需求来设置项目模板,项目名称和文件存放位置,设置好后点击“确认”3. 点击“Next”4. 按照自己需求设置,设置完后,点击“Next”…

【数据治理】指标体系

文章目录 1. 如何进行体系化建模2. 高层模型设计3. 派生指标3.1 派生指标体系的架构、概念一种可行的指标构造方式:举例: 3.2 派生指标体系的规范细则 1. 如何进行体系化建模 体系化建模流程图: 指标相关设计流程: 首先&#x…

基于大数据+Hadoop的豆瓣电子图书推荐系统实现

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列文章目录 基于大数…

手动实现简易版RPC(四)

手动实现简易版RPC(四) 往期内容 手动实现简易版RPC(一):RPC简介及系统架构 手动实现简易版RPC(二):简单RPC框架实现 手动实现简易版RPC(三):mock数据生成 前言 接上几篇博客我们实现了最…

便签怎么设置不同的标签 便签创建不同分组标签的方法

在日常工作和生活中,便签已成为我随身携带的小助手。每当灵感闪现,或是需要临时记录一些重要事项,我都会随手打开便签,快速记录下来。然而,随着记录的内容越来越多,如何高效地管理和查找这些信息成为了一个…

联丰策略股票炒股市场港股恒生指数止步“10连阳”

查查配港股市场今日未能持续之前的上涨趋势。恒生指数在经历了4月22日至5月6日的“十日连阳”罕见行情后,其反弹动能有所减弱。与此同时,恒生科技指数也遭遇了回调。截至收盘,恒生指数跌0.53%,报收18479.37点;科技指数跌2.13%,报收3922.54点;国企指数跌0.70%,报收6526.67点。 …

【保姆级详细步骤教学用DOSBoxV0.74写出一个汇编语言程序输出Hello World!】

使用任何文本编辑器创建一个名为 HELLO.ASM 的文件,并将以下代码粘贴到文件中: .MODEL SMALL .STACK 100H.DATAMSG DB Hello, World!, $PROMPT DB 13, 10, Press any key to exit..., $.CODEMAIN PROCMOV AX, DATAMOV DS, AXMOV AH, 09HLEA DX, MSGINT …

R语言【Tidyverse、Tidymodel】机器学习

机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”,是发现新规律,总结和分析实验结果的利器。机器学习涉及的理论和方法繁多,编程相当复杂,一直是阻碍机器学习大范围应用的主要困难之一,由此诞生了Python…

2024最详细全面的发卡平台对比调研

最近在调研目前市面上的发卡平台,对一些主流的托管式发卡平台与github上开源的发卡项目做了横向对比,本文主要介绍各自特点以及需要注意避免的坑。 直接上表格,一目了然。 对比独角数卡***发卡/泛发卡平台iDataRiver发卡稳定性/跑路风险自己…

双层胶工艺是什么?

知 识星球(星球名: 芯片制造与封测社区,星球号: 63559049)里的学员问: 什么是双层胶工艺? 为什么要用双层胶呢? 本图由allresist公司提供,特此鸣谢 为什么要涂双层…