HOT39-对称二叉树

news2024/12/22 18:28:35

    leetcode原题链接:对称二叉树

题目描述

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

示例 1:

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

示例 2:

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

提示:

  • 树中节点数目在范围 [1, 1000] 内
  • -100 <= Node.val <= 100

进阶:你可以运用递归和迭代两种方法解决这个问题吗?

解题方法:用类似二叉树先序遍历的方法。先判断两颗树是否为对称二叉树 isSymmetric(TreeNode* root1, TreeNode* root2) ,两颗子树为对称子树的条件是然后将root1改成root->left, root2改成root->right调用该函数即可。

C++代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    bool isSymmetric(TreeNode* root) {
        if (!root) {
            return true;
        }
        return isSymmetric(root->left, root->right);
    }

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

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

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

相关文章

JVM03-优化垃圾回收

JVM的内存区域中&#xff0c;程序计数器、虚拟机栈和本地方法栈这3个区域是线程私有的&#xff0c;随着线程的创建而创建&#xff0c;销毁而销毁&#xff1b;栈中的栈帧随着方法的进入和退出进行入栈和出栈操作&#xff0c;每个栈帧中分配多少内存基本是在类结构确定下来的时候…

消息中间件面试题详解

RabbitMQ 如何保证消息不丢失 消息的重复消费问题如何解决 rabbitmq中死信交换机&#xff08;RabbitMQ延迟队列有了解吗&#xff09; 延迟队列&#xff1a;进入队列的消息会被延迟消费的队列 场景&#xff1a;超时订单&#xff0c;限时优惠&#xff0c;定时发布 延迟队列 …

【Linux】-第一个小程序(进度条)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 &#x1f389;作者宣言&#xff1a;认真写好每一篇博客 &#x1f38a;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作…

Activiti modoler 整合后报错 TypeError: Cannot read property ‘namespace‘ of undefined

之前在Demo整合过没问题&#xff0c;结果好不容易整合到现在的项目&#xff0c;结果出现成这个鬼样子……问题找了好久&#xff0c;一直以为是SpringSecurity请求限制没放开&#xff0c;所以找SpringSecurity的debug日志&#xff0c;浏览器请求有没有404、500、502等&#xff0…

将OpenAI和ChatGPT模型与LearnDash线上学习平台结合使用

人工智能革命来了&#xff01;&#xff08;以尽可能最好的方式。&#xff09;了解如何使用 Uncanny Automator 通过 OpenAI 和 ChatGPT 模型为您的线上学习和LearnDash LMS提供动力。 当人们听到“人工智能”这个词时&#xff0c;他们往往会想到流氓机器人、无政府状态的机器人…

科技项目验收测试报告包括哪些内容?

科技项目验收测试报告是评估科技项目质量和可靠性的重要文件。通过全面的测试和评估&#xff0c;可以确保项目的质量&#xff0c;提高用户满意度&#xff0c;降低项目风险。 一、科技项目验收测试报告的内容 1. 项目概述&#xff1a;介绍项目的背景、目标和范围&#xff0c;…

从 AI 增强到大模型,企业使用数据的方式又将如何变化?

AI&#xff08;Artificial Intelligence&#xff0c;人工智能&#xff09;的发展不过百年&#xff0c;却已经深刻影响着人们的思维和见解&#xff0c;并逐渐关联到每个人生活和工作的方方面面。从最初的规则引擎和引入统计学方法&#xff0c;到基于知识表示和推理机制的专家系统…

瓴羊QuickBI数据门户帮助企业高效管理和展示数据,使其更加明确易懂

随着信息技术时代的到来&#xff0c;越来越多的企业意识到商业信息是其最宝贵的资产之一。对于获取商业信息&#xff0c;需要专业的数据分析。因此&#xff0c;商业智能BI工具&#xff0c;如瓴羊QuickBI已经成为企业信息化中必不可少的工具。它拥有卓越的数据管理和展示功能&am…

VS2019中WebService实现发布、调用以及问题汇总

VS2019中WebService实现发布、调用以及问题汇总 前言一、WebService是什么&#xff0c;意义有哪些&#xff1f;二、创建二.发布三.访问问题总结1.不是专用连接2.HTTP错误 403.14 - Forbidden3.HTTP 错误 404.3 - Not Found4.应用程序种服务器错误 前言 在对接工厂Mes的过程中&…

图书馆流量监控性能分析案例

前言 图书馆信息中心老师反应&#xff0c;用户反馈系统有访问慢的情况&#xff0c;需要通过流量分析系统来了解图书馆系统的运行情况&#xff0c;此报告专门针对图书馆系统的性能数据做了分析。 图书馆已部署NetInside流量分析系统&#xff0c;使用流量分析系统提供实时和历史…

springboot 整合mybatis plus,使用druid 切换多数据源实现单数据库事务,附赠项目源码地址

项目源码地址 GitHub - liyanlei58/ssm: springboot druid mybatis plus 事务 最近想搭一套spring cloud开发环境&#xff0c;各种不顺利吧&#xff0c;先是spring cloud的组件某些功能不好用&#xff0c;是版本自身的bug。后来又碰到了事务无法回滚&#xff0c;这个搞了好几个…

银河麒麟服务器v10 sp1 安装mysql

可以先用 dpkg --list|grep mysql 查看自己的mysql有哪些依赖&#xff1a; 上图已经是安装后的截图&#xff0c;然后再卸载 sudo apt-get autoremove --purge mysql-common 本文在没有安装之前&#xff0c;只有mysql-common包&#xff0c;再用dpkg --list|grep mysql查看&…

[MySQL]在搭载Linux系统(centos7)的云服务上安装MySQL

[MySQL]MySQL 在 Centos 7环境安装 安装与卸载中&#xff0c;用户全部切换成为root&#xff0c;⼀旦安装&#xff0c;普通用户也能够使用。 文章目录 [MySQL]MySQL 在 Centos 7环境安装1. 卸载不要的环境2. 获取MySQL官方yum源3. 安装mysql yum 源&#xff0c;对比前后yum源4.…

Windows server 下关闭135/139/445端口

一、关闭​ ​135端口​​ 方案一 第一步 运行dcomcnfg&#xff0c;打开“组件服务”→“计算机”&#xff0c;在“我的电脑”上右键点击&#xff0c;选“属性”&#xff1b;然后点默认属性&#xff0c;把“在此计算机上启用分布式COM&#xff08;E&#xff09;”的勾去掉&a…

深入理解Spring Boot:从入门到精通

摘要 Spring Boot是一个用于构建独立、生产级别的Spring应用程序的框架。它以简化配置和快速开发为设计目标&#xff0c;使开发人员能够更专注于业务逻辑的实现。本文将深入探讨Spring Boot的核心概念、特性和最佳实践&#xff0c;帮助读者从入门到精通。 引言 在当今的软件开发…

pod 控制器 4

对于 pod 使用 yaml 文件或者 json 描述文件生成&#xff0c;之前都有提到过&#xff0c;且对 yaml 的每一个属性都有介绍到 确实是属性非常的多&#xff0c;但是我们知道如何去区分哪些是重要的部分&#xff0c;哪些是可有可无的部分之后&#xff0c;这些就变得简单了 pod 的…

用Linux搭建网站(LAMP)

安装环境 演示服务器版本为CentOS 8 安装apache 下载apache yum install httpd httpd-devel 启动apache服务器 systemctl start httpd设置apache开机自启 systemctl enable httpd查看apache运行状态&#xff0c;绿色即正常运行 systemctl status httpd关闭和禁用防火墙 …

Python语言在地球科学领域中的实践技术

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台&#xff08;x86和arm&#xff09;&#xff0c;Python简洁的语法和对动态输入的支持&#xff0c;再加上解释性语言的本质&…

《Redis 核心技术与实战》课程学习笔记(一)

基本架构&#xff1a;一个键值数据库包含什么&#xff1f; 这样学 Redis&#xff0c;才能技高一筹 为了保证数据的可靠性&#xff0c;Redis 需要在磁盘上读写 AOF 和 RDB&#xff0c;但在高并发场景里&#xff0c;这就会直接带来两个新问题&#xff1a; 一个是写 AOF 和 RDB …

关于Kettle ETL java脚本编写遇到的一些问题记录

Kettle ETL java脚本编写遇到的一些问题记录 1.文本信息输出 使用方法**logBasic()**参数必须是字符串 这部分内容会在ETL的日志窗口显示 2.获取参数数据 1.获取上个节点传输的数据 可以直接在左侧双击获取 2.全局参数获取 在启动运行的变量设置参数 在java代码中获取方式 …