LC-对称二叉树

news2025/1/19 20:31:50

LC-对称二叉树

链接:https://leetcode.cn/problems/symmetric-tree/description/

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

例1:
在这里插入图片描述

输入:root = [1,2,2,3,4,4,3]
输出:true

例2:
在这里插入图片描述

输入:root = [1,2,2,null,3,null,3]
输出:false

思路:递归去对比。以例1为例,想要树是对称的,是对于根节点1来说,左2应该等于右2;等于左2跟右2来说,左2的左3是等于右2的右3,左2的右4等于右2的左4,依次类推。
代码如下:

    public boolean isSymmetric(TreeNode root) {
        //等于根节点特殊情况的处理
        //如果节点的左节点和右节点不同时为空,则不是对称的
        if (root.left == null && root.right != null) {
            return false;
        }
        if (root.right == null && root.left != null) {
            return false;
        }
        //左右节点同时为空,认为是对称的
        if (root.left == null && root.right == null) {
            return true;
        }
        return f(root.left, root.right);
    }

    private boolean f(TreeNode left, TreeNode right) {
        //如果左右有一个为空,则返回另外一个节点是否为空,如果同时为空,则返回true
        if (left == null) {
            return right == null;
        }
        if (right == null) {
            return left == null;
        }
        //如果节点的值不一样,返回false
        if (left.val != right.val) {
            return false;
        }
        //递归对比,必须左节点的左节点和右节点的右节点、左节点的右节点和右节点的左节点都相同时才返回true
        return f(left.left, right.right) && f(left.right, right.left);
    }

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

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

相关文章

【C++】—— 详解AVL树

目录 序言 (一)AVL树的概念 1、AVL树的由来 2、AVL树的特点 3、平衡因子 (二)AVL树的插入 1、插入操作的思想理解 2、AVL树的旋转 1️⃣ LL平衡旋转(右单旋转) 2️⃣ RR平衡旋转(左单…

基于Canal实现MySQL 8.0 数据库数据同步

前言 服务器说明 主机名称操作系统说明192.168.11.82Ubuntu 22.04主库所在服务器192.168.11.28Oracle Linux Server 8.7从库所在服务器 版本说明 <span style"color:#000000"><span style"background-color:#ffffff"><code class"la…

carla中lka实现(二)

前言&#xff1a; 首先计算之前检测出来的车道线的中线与输入图像的中线进行计算距离&#xff0c;&#xff0c;并设置不同的阈值对于不同的方向进行相关的调整。 一、车辆中心线 一般而言将摄像头架设在车辆的正中心轴上&#xff0c;所获得的图像的中间线极为车辆的中心。 …

激光雷达 01 线数

一、线数 对于 360 旋转式和一维转镜式架构的激光雷达来说&#xff0c;有几组激光收发模块&#xff0c;垂直方向上就有几条线&#xff0c;被称为线数。这种情况下&#xff0c;线数就等同于激光雷达内部激光器的数量[参考]。 通俗来讲&#xff0c;线数越高&#xff0c;激光器的…

Adobe Acrobat 无法使用 PS 编辑图片 的解决方法

问题描述 使用较新版本的Adobe Acrobat时&#xff0c;有时会遇到问题。 比如对pdf中的图片使用 PS 进行编辑&#xff0c;会弹出以下窗口&#xff0c;导致打不开 PS &#xff0c;无法对图片进行编辑。 Adobe 无法启动您指定的图像编辑应用程序。请在"首选项"的"…

【STM32CubeMX】低功耗模式

前言 本文讲解STM32F10X的低功耗模式&#xff0c;部分资料参考自STM32手册。STM32F10X提供了三种低功耗模式&#xff1a;睡眠模式&#xff08;Sleep mode&#xff09;、停机模式&#xff08;Stop mode&#xff09;和待机模式&#xff08;Standby mode&#xff09;。这些低功耗模…

双环传动CIO吴学信:数字化转型为企业高效运转和业绩腾飞提供重要支撑

引言 浙江双环传动机械股份有限公司&#xff08;股票代码&#xff1a;002472&#xff09;创建40年来专注于机械传动核心部件——齿轮及其组件的研发、制造与销售&#xff0c;已成为全球最大的专业齿轮产品制造商和服务商之一。 2019年以来&#xff0c;双环传动与纷享销客CRM建…

【0Ω电阻在PCB板中的5大常见作用】

文章目录 前言1、充当跳线2、进行调试时的前后级隔离3、让调试更灵活4、方便测试电流5、用于单点接地 前言 在PCB板中&#xff0c;时常见到一些阻值为0Ω的电阻。我们都知道&#xff0c;在电路中&#xff0c;电阻的作用是阻碍电流&#xff0c;而0Ω电阻显然失去了这个作用。那…

LC-将有序数组转换为二叉搜索树

LC-将有序数组转换为二叉搜索树 链接&#xff1a;https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ 描述&#xff1a; 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索…

new String()到底创建了几个对象

题目&#xff1a; new String&#xff08;"abc"&#xff09;会创建几个对象&#xff1f; 看字节码&#xff0c;就知道是两个。

经验分享丨HR告诉你:同样是找工作,这些简历绝对会被直接刷掉!

上次的文章分享了自己软件测试面试时的一些经历&#xff0c;今天我想分享一下自己当时写简历以及投简历方面的经历&#xff0c;本文内容纯粹是个人简单分享&#xff0c;如果有写得不好的地方还请读者包涵与指正。 我是去年的九月初开始投递简历的&#xff0c;貌似各行各业的人都…

[JavaWeb]【七】web后端开发-MYSQL

前言&#xff1a;MySQL是一种流行的关系型数据库管理系统,它的作用是存储和管理数据。在Web开发中,MySQL是必备的数据库技能之一,因为它可以帮助Web开发人员处理大量的数据,并且提供了强大的数据查询和管理功能。 一 数据库介绍 1.1 什么是数据库 1.2 数据库产品 二 MySQL概述…

电煎锅出口欧洲CE认证标准

电煎锅是家庭烹饪中比较常见的电器&#xff0c;一般家庭在日常生活中都会使用&#xff0c;所以电煎锅具有广大的市场&#xff0c;尤其在欧洲市场更是日常烹饪离不开的家庭电器。欧洲是我国出口比例占比较大的地区&#xff0c;每年出口到欧洲的家庭电器占很大一部分。而根据欧盟…

3 Python的数据类型

概述 在上一节&#xff0c;我们介绍了Python的基础语法&#xff0c;包括&#xff1a;编码格式、标识符、关键字、注释、多行、空行、缩进、引号、输入输出、import、运算符、条件控制、循环等内容。Python是一种动态类型的编程语言&#xff0c;这意味着当你创建一个变量时&…

解决c/c++ Error: redefinition of ‘xxx’ 的问题

错误信息 两个类/文件同时引用定义ReplyInfo的头文件&#xff0c;会造成头文件中定义重复定义 如两个类/文件重复引用massage文件报错 message.h:36:16: error: redefinition of struct MSG_SERVOCTRL message.h:40:2: error: conflicting types for servoctrl解决 一般是目…

[SWPUCTF 2022 新生赛]ez_ez_php

这段代码是一个简单的PHP文件处理脚本。让我们逐行进行分析&#xff1a; error_reporting(0); - 这行代码设置了错误报告的级别为0&#xff0c;意味着不显示任何错误。 if (isset($_GET[file])) { - 这行代码检查是否存在一个名为"file"的GET参数。 if ( substr($_…

步步为赢:打造一个酷炫而吸引人的Hadoop HDFS分布式文件系统集群部署方案

文章目录 版权声明一 分布式存储缘起二 分布式的基础架构2.1 大数据架构模式2.2 主从模式 三 HDFS的基础架构HDFS的角色组成 四 HDFS集群环境部署4.1 安装包下载4.2 Hadoop安装包目录结构4.3 修改配置文件&#xff0c;应用自定义设置4.4 分发Hadoop文件夹4.5 配置环境变量4.6 授…

【论文笔记】基于指令回译的语言模型自对齐-MetaAI

MetaAI最近发布的Humpback&#xff0c;论文链接&#xff1a;https://arxiv.org/abs/2308.06259 解决什么问题&#xff1f; 大量高质量的指令微调数据集的生成。 思路 在这项工作中&#xff0c;我们通过开发迭代自训练算法来利用大量未标记的数据来创建高质量的指令调优数据集…

IC流程中 DFT 学习笔记(2)

引言 DFT是ASIC芯片设计流程中不可或缺的环节。其主要目的是在芯片前端设计验证完成后插入一些诸如寄存器链等可供测试的逻辑&#xff0c;算是IC后端设计的范畴&#xff0c;属于结构测试而非功能测试。主要是在ASIC芯片流片完成后&#xff0c;通过这些已插入的逻辑&#xff0c…

Rancher-RKE-install 部署k8s集群

一、为什么用Rancher-RKE-install 1.CNCF认证的k8s安装程序。 2.有中文文档。 二、安装步骤 1.下载Rancher-Rke的二进制包-下面是项目的地址 GitHub - rancher/rke: Rancher Kubernetes Engine (RKE), an extremely simple, lightning fast Kubernetes distrib…