Java算法_ 检查对称树(LeetCode_Hot100)

news2024/9/21 17:36:45

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

获得更多?算法思路:代码文档,算法解析的私得。

运行效果
在这里插入图片描述

完整代码

/**
 * 2 * @Author: LJJ
 * 3 * @Date: 2023/8/17 8:47
 * 4
 */
public class SymmetricTree {

    static class TreeNode{
        int val;
        TreeNode left;
        TreeNode right;

        TreeNode(int val){
            this.val = val;
        }
    }

    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);
    }

    public static void main(String[] args) {
        SymmetricTree symmetricTree = new SymmetricTree();

        // 构建一个对称的二叉树
        TreeNode root = new TreeNode(1);
        root.left = new TreeNode(2);
        root.right = new TreeNode(2);
        root.left.left = new TreeNode(3);
        root.left.right = new TreeNode(4);
        root.right.left = new TreeNode(4);
        root.right.right = new TreeNode(3);

        boolean isSymmetric = symmetricTree.isSymmetric(root);
        System.out.println("是否是轴对称的: " + isSymmetric); // 输出 true
    }
}

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

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

相关文章

Journal of Cheminformatics投稿经验分享

期刊名: Journal of Cheminformatics期刊名缩写:J CHEMINFORMATICS期刊ISSN:1758-2946E-ISSN:1758-29462023年影响因子/JCR分区:8.6/Q1SCI分区: CHEMISTRY, MULTIDISCIPLINARY 化学综合3区COMPUTER SCIENCE, INFORMATION SYSTEMS 计算机:信息系统2区COMPUTER SCIENCE, I…

AgentBench:AI智能体的应用前景——生产端的应用

生产端的应用 相比于消费端,AI智能体作为生产力工具的潜力则更为巨大。在现实中,很多工作需要专业化的数据作为支撑,通用化大模型显然不能胜任,这就给专用型的AI智能体留下了空间。在实践中,人们已经用大模型训练了不少专用的AI智能体。比如,不久前北京大学团队发行了一…

linux内核异步内存回收的另一个思路:基于冷热文件的冷热区域精准的回收冷文件页page(内核ko方案)

本文介绍的针对pagecache的异步内存回收方案与现有的思路有很大不同:内存回收的单位是一个个文件,再把文件的pagecache分成一个个小单元(或者叫区域)。提前判断出文件那些区域是频繁访问的(热区域),哪些区域很少访问(冷区域)。异步内存回收线…

移动通信系统的LMS自适应波束成形技术matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..................................................................... idxx0; while idxx&…

深入探索Java中的File类与IO操作:从路径到文件的一切

文章目录 1. File类的作用与构造方法2. File类常用方法:获取、判断和创建2.1 获取功能方法2.2 判断功能方法2.3 创建和删除功能方法2.4 目录的遍历方法 3. 递归:探索更深的层次代码示例:递归遍历文件夹 结论 🎉欢迎来到Java学习路…

AI极客日报0817 - 微软、亚马逊如何借助AI提升用户体验?

👀AI 日报合集 | 🧡 点赞关注评论拜托啦! 曾经,很多企业对ChatGPT的开放性表示担忧。如今,这些顾虑即将成为过去——微软带来了一个答案,推出了名为Azure ChatGPT的私有开源版本。那么,这一新版…

nodejs+vue+elementui多媒体作品信息共享平台开发_s2uq7

武理多媒体信息共享平台主要有管理员和用户两个功能模块。以下将对这两个功能的作用进行详细的剖析。 管理员模块:管理员是系统中的核心用户,管理员登录后,可以对后台系统进行管理。主要功能有个人中心、用户管理、作品分类管理、作品信息管理…

数据分析工具都有哪些?

简单介绍一下,数据分析是指适当的统计分析方法对收集来的大量数据进行分析,将它们汇总和理解消化,以求最大化地开发数据的功能,发挥数据的作用。 那么数据分析有哪些工具呢,是不是都需要掌握?当然不是的&am…

嵌入式设备应用开发(程序、静态库、动态库、配置文件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 一个程序要想正确地在设备上运行起来,那么基本步骤就是,首先编写好程序代码,接着用交叉编译器编译出来,最后将这个程序拷贝到嵌入式设备上。然后,我们可以通过console控制台的…

【图像分类】基于卷积神经网络和主动学习的高光谱图像分类(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【使用 k 折叠交叉验证的卷积神经网络(CNN)】基于卷积神经网络的无特征EMG模式识别研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

4.Vue

1.什么是Vue Vue是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。 基于**MVVM(Model-View-ViewModel)思想,实现数据双向绑定**,将编程的关注点放在数据上。 官网:https://v2.cn.vuejs.org/ 框架&#xff1…

Linux 5种网络IO模型

Linux IO模型 网络IO的本质是socket的读取,socket在linux系统被抽象为流,IO可以理解为对流的操作。刚才说了,对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操…

DDD 架构分层,MQ消息要放到那一层处理?

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 本文的宗旨在于通过简单干净实践的方式教会读者,使用 Docker 配置 RocketMQ 并在基于 DDD 分层结构的 SpringBoot 工…

Nginx反向代理技巧

跨域 作为一个前端开发者来说不可避免的问题就是跨域,那什么是跨域呢? 跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。浏览器的同源策略是指协议,域名…

三维模型OSGB格式轻量化纹理压缩关键技术分析

三维模型OSGB格式轻量化纹理压缩关键技术分析 在三维模型应用中,纹理是一个十分重要的因素,可以使得模型更加真实、精细。随着移动设备和网络传输速度的限制,纹理数据也需要进行轻量化处理,而OSGB格式纹理压缩是一种常见且有效的技…

Android Studio使用OkHttp网络通信出现okio问题

最近使用Android Studio做个App,一开始集成的httpclient,但是Android对其支持性不是很好了,所以换成了okhttp。 集成okhttp 1、我在本地仓库,拷贝出来,放到系统的libs目录下。 2、选定okhttp-4.1.0.jar,右…

电视机看板大屏适配问题——js基础积累

直接上效果图&#xff1a; 下面直接写代码&#xff1a; 1.html部分的代码 <body><div class"container"><!-- 数据展示区域 --><div class"box"><div class"top">top</div><div class"bottom&…

Linux知识点 -- Linux多线程(一)

Linux知识点 – Linux多线程&#xff08;一&#xff09; 文章目录 Linux知识点 -- Linux多线程&#xff08;一&#xff09;一、理解线程1.从资源角度理解线程2.执行流3.多线程编程4.线程的资源5.线程切换的成本更低6.线程的优缺点7.线程异常 二、线程控制1.clone函数2.线程异常…

深度学习入门-2-开源开放平台

一、深度学习框架 1.简介 深度学习在很多机器学习任务中都有着非常出色的表现&#xff0c;在图像识别、语音识别、自然语言处理、机器人、网络广告投放、医学自动诊断和金融等领域都有着广泛应用。面对繁多的应用场景&#xff0c;深度学习框架有助于建模者聚焦业务场景和模型…