java数据结构与算法(对称二叉树)
前言
为什么学习数据结构和算法?
1.直面大厂的高薪。
2.学习编程的语言。
3.输出优雅的代码和高性能的程序。
每日练习2题,希望大家都能收获高薪offer,实现自由跳槽。
实现原理
主要判断二叉树的以中间线为轴,两边的对称的位置节点是否相等。主要采用两个递归实现各节点对称点的值比较。
其中1个递归是根的左节点与根的右节点持续递归到底,比较两个值是否相等。
另一个递归是根的右节点与根的左节点持续递归到底,比较两个值是否相等。
具体代码实现
package test7;import java.util.List;class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val = val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}
}class Solution {TreeNode root;public boolean isSymmetric(TreeNode root) {return check(root,root);}public boolean check(TreeNode p,TreeNode q){if(p==null&&q==null){return true;}if(p==null||q==null){return false;}return p.val==q.val&&check(p.left,q.right)&&check(p.right,q.left);}public static void main(String[] args) {Solution solution=new Solution();TreeNode treeNode=new TreeNode(1);treeNode.left=new TreeNode(2);treeNode.left.left=new TreeNode(3);treeNode.left.right=new TreeNode(4);treeNode.right=new TreeNode(2);treeNode.right.left=new TreeNode(4);treeNode.right.right=new TreeNode(3);boolean res=solution.isSymmetric(treeNode);System.out.println(res);}
}
QA:待定
相关文章:
java数据结构与算法(对称二叉树)
前言 为什么学习数据结构和算法? 1.直面大厂的高薪。 2.学习编程的语言。 3.输出优雅的代码和高性能的程序。 每日练习2题,希望大家都能收获高薪offer,实现自由跳槽。 实现原理 主要判断二叉树的以中间线为轴,两边的对称的…...
[原创](Modern C++)现代C++的std::function, 强大的多态函数包装器(包含std::mem_fn使用方式).
[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…...
解决间歇性 SSLPeerUnverifiedException 问题
问题背景 您在使用 SonarQube 与 GitHub Enterprise 进行拉取请求装饰时,遇到了间歇性的 javax.net.ssl.SSLPeerUnverifiedException 异常。具体错误信息如下: txt javax.net.ssl.SSLPeerUnverifiedException: Hostname XXXXXXX not verified (no certificates)at okhttp3…...

Linux程序开发(一):Linux基础入门安装和实操手册
Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…...

Java | Leetcode Java题解之第92题反转链表II
题目: 题解: class Solution {public ListNode reverseBetween(ListNode head, int left, int right) {// 设置 dummyNode 是这一类问题的一般做法ListNode dummyNode new ListNode(-1);dummyNode.next head;ListNode pre dummyNode;for (int i 0; …...

声纹识别在无人机探测上的应用
无人机在民用和军事领域的应用越来越广泛。然而,随着无人机数量的增加,"黑飞"现象也日益严重,对公共安全和隐私构成了威胁。因此,开发有效的无人机探测与识别技术变得尤为重要。及时发现黑飞无人机的存在进而对其型号进…...

【数据结构】时间、空间复杂度实例分析
跌倒了,就重新站起来,继续向前走;傻坐在地上是没用的。💓💓💓 目录 •✨说在前面 🍋知识点一:算法的效率 • 🌰1.斐波那契数列的第n项 • 🌰2.算法的复杂度…...

2024生日快乐祝福HTML源码
源码介绍 2024生日快乐祝福HTML源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面, 源码截图 源码下载 2024生日快乐祝福HTML源码...

Android系统不同版本存储权限
一、Android存储简介 Android系统分为内部存储和外部存储 从Android6.0开始不断在更新存储(读写)权限,除了在AndroidManifest.xml文件里声明,app运行时也要动态申请使用对应的权限 提醒:应用私有存储不需要动态申请权…...

ue引擎游戏开发笔记(41)——行为树的建立(2)--丰富ai行为:巡逻后返回原处
1.需求分析: 就敌人ai而言,追踪到敌人有可能丢失目标,丢失目标后应该能返回原来位置,实现这一功能。 2.操作实现: 1.思路:利用clear value函数,禁用掉当前的追踪功能,执行之后的返…...
Linux quotacheck命令教程:如何检查和修复文件系统的磁盘配额(附案例详解和注意事项)
Linux quotacheck命令介绍 quotacheck命令是用于扫描文件系统以检查磁盘配额的一致性。它生成、检查和修复配额文件。这个命令通常在系统引导时运行,或者在手动更改了配额设置后运行。 Linux quotacheck命令适用的Linux版本 quotacheck命令在大多数Linux发行版中…...
Response对象的学习
Response对象在Web开发中是一个重要的概念,它代表了服务器对客户端请求的响应。当客户端(如浏览器)向服务器发送一个请求后,服务器会生成一个Response对象,其中包含了服务器返回给客户端的数据、状态码、响应头等信息。…...

QCustomplot---动态图
QCustomplot绘制动态曲线图-游标及鼠标跟踪显示数值_qcustomplot 游标-CSDN博客 m_timer new QTimer(this);connect(m_timer,SIGNAL(timeout()),this,SLOT(slotTimeout()));m_timer->start(50); void MainWindow::slotTimeout() {static int p0;static int i0;double m,m1…...

蛋白聚乙二醇化修饰检测试剂盒
蛋白多肽因其高生物活性、高特异性等优点备受药物开发商和研究者的青睐。但分子量大、亲水性强、稳定性差等劣势限制了蛋白多肽在临床上的应用,特别是蛋白多肽作为一种异源蛋白具有很强的免疫原性,容易被机体免疫系统识别并清除,导致药物的血…...

[Algorithm][回溯][字母大小写全排列][优美的排列][N皇后]详细讲解
目录 1.字母大小写全排列1.题目链接2.算法原理详解3.代码实现 2.优美的排列1.题目链接2.算法原理详解3.代码实现 3.N 皇后1.题目链接2.算法原理详解3.代码实现 1.字母大小写全排列 1.题目链接 字母大小写全排列 2.算法原理详解 本题逻辑与子集大致相同 思路一:每…...

.NET_NLog
步骤 1. 添加依赖 ①Microsoft.Extensions.DependencyInjection ②NLog.Extensions.Logging(或Microsoft.Extensions.Logging.___) Tutorial NLog/NLog Wiki GitHub 2.添加nlog.config文件(默认名称, 可改为其他名称, 但需要另行配置) 文件的基础…...

Linux查看进程命令ps和top
Linux 是一种自由和开放源代码的操作系统,它的使用在全球范围内非常广泛。在 Linux 中,进程是操作系统中最重要的组成部分之一,它代表了正在运行的程序。了解如何查看正在运行的进程是非常重要的,因为它可以帮助你了解系统的运行状…...

深入解析Wireshark1:从捕获到分析,一网打尽数据包之旅
目录 1 认识 Wireshark 1.1 选择网卡界面 1.2 捕获数据包界面 1.3 常用按钮功能介绍 1.4 数据包列表信息 1.5 数据包详细信息 2 数据包案例分析 Frame: 物理层的数据帧概况 Ethernet II: 数据链路层以太网帧头部信息 Internet Protocol Version 4 (IPv4): 互联网层IP…...
C++语法|指向类成员(成员变量和成员方法)的指针及其相关应用场景
文章目录 1.基本语法指向成员变量的指针示例 指向成员函数的指针示例 注意事项 2.应用场景泛型编程和模板:通用成员访问打印函数回调机制和事件处理:基于简单GUI框架的事件处理 1.基本语法 指向类成员的指针是一种特殊的指针类型,用于指向类…...

【C语言】通讯录系统实现
目录 1、通讯录系统介绍 2、代码分装 3、代码实现步骤 3.1制作菜单函数以及游戏运行逻辑流程 3.2、封装人的信息PeoInfo以及通讯录Contact结构体类型 3.3、初始化通讯录InitContact函数 3.4、增加联系人AddContact函数 3.5、显示所有联系人ShowContact函数 3.6、删除联系人D…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...