【剑指Offer】28.对称的二叉树

news2024/11/27 14:45:13

题目

给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)
例如:下面这棵二叉树是对称的
 

下面这棵二叉树不对称。

数据范围:节点数满足 0≤n≤1000,节点上的值满足 0∣val∣≤1000

要求:空间复杂度 O(n),时间复杂度 O(n)

备注:你可以用递归和迭代两种方法解决这个问题

示例1

输入:{1,2,2,3,4,4,3}

返回值:true

示例2

输入:{8,6,9,5,7,7,5}

返回值:false

解答

源代码

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pRoot TreeNode类 
     * @return bool布尔型
     */
    public boolean isSymmetrical (TreeNode pRoot) {
        // write code here
        if (pRoot == null) {
            return true;
        }

        return func(pRoot.left, pRoot.right);
    }

    public boolean func(TreeNode nodeA, TreeNode nodeB) {
        if (nodeA == null && nodeB == null) {
            return true;
        } else if (nodeA == null || nodeB == null || nodeA.val != nodeB.val) {
            return false;
        }

        return func(nodeA.left, nodeB.right) && func(nodeA.right, nodeB.left);
    }
}

总结

这题可以用递归做可以用迭代,重点在于将哪些结点两两对比,对比的依据是什么。

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

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

相关文章

Garden Plannerfor Mac /win:轻松创建您的理想园林绿化设计

如果你希望拥有一个美丽、舒适的绿色环境,但又不确定如何设计和管理,那么Garden Planner园林绿化设计软件是你的理想选择。 Garden Planner是一款专门为园艺爱好者和专业人士设计的软件。它可以帮助你规划、设计和维护你的园林绿化。无论是小型的家庭花…

树叶识别系统python+Django网页界面+TensorFlow+算法模型+数据集+图像识别分类

一、介绍 树叶识别系统。使用Python作为主要编程语言开发,通过收集常见的6中树叶(‘广玉兰’, ‘杜鹃’, ‘梧桐’, ‘樟叶’, ‘芭蕉’, ‘银杏’)图片作为数据集,然后使用TensorFlow搭建ResNet50算法网络模型,通过对…

vue @click点击事件不生效

问题: 上图的两个添加绑定了同一个函数 明明写法完全一样,但是点击左上角的按钮死活没反应(抓狂 原因: 用浏览器的调试模式 点击之后发现这个button被下面的a-spin标签挡住了(使用的antdv组件 咱也不知道为什么会这样…

“Invalid project description“问题解决

eclipse导包“Invalid project description“问题解决 问题: 导入某些android项目到eclipse的时候,可能会出现错误:Invalid project description。 解决方案: 由于导入的项目已经在workspace的工作目录中, 将项目整个…

MySQL多表查询综合练习

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下: CREATE TABLE sc…

小工具使用——瑞士军刀(nc.exe)实现远程控制终端操作

工具:一台服务器,一台本地计算机,nc.exe(链接:https://pan.baidu.com/s/1TCzjgE2GfE3qCzrIiOLYJQ?pwd5tmk 提取码:5tmk)

鲜奶全程冷链配送

一、概述 鲜奶会通过低温巴氏杀菌消灭有害物质同时保留活性生命物质,其对储存条件要求极为苛刻,保质期一般不超过15天,整个配送过程必须采用全程冷链方式(0~4c冷藏环境),从澳洲每周直飞运往宁波或广州港&a…

2023人工智能十大关键词“Agent”智能体,继ChatGPT后成最热AI焦点

9月17日,在“南京人工智能产业发展大会暨可信AI大会”上,中国信通院人工智能创新中心(筹)负责人、云大所副所长魏凯正式发布并解读了“2023人工智能十大关键词”其中,AI Agent、生成式AI等纷纷上榜。 一、通往 AGI 的道…

智能超声波清洗机真的好用吗?这几款超声波清洗机不能错过

随着生活品质的不断提高,智能家居也是越来越多了,超声波清洗机作为近年来备受瞩目的清洁神器,其高效、环保、无污染的特性深受消费者喜爱。然而,面对市场上琳琅满目的超声波清洗机品牌和型号,许多人在选购时感到困惑。…

网站安全-行为式验证码

什么是行为式验证码? 行为式验证码是一种较为流行的验证码。从字面来理解,就是通过用户的操作行为来完成验证,而无需去读懂扭曲的图片文字。常见的有两种:拖动式与点触式。 例如下图即为滑块式验证码 行为式验证码优势 一&#x…

optee移植指南

关键词:optee移植、TEE移植、trustzone、视频课程、tee、ATF、TF-A、香橙派、开发板、armv8、armv9、arm、嵌入式、linux、内核 您是否一直在苦苦寻觅一款基于Armv8架构的开发板?您是否一直在追寻一款支持TF-A和optee的开发板,却在寻找的过程…

Bootstrap中将颜色与事件进行关联的颜色名称

primary:重要,通过醒目的彩色设计,比如深蓝色,提示浏览者注意阅读。secondary:次要,通过灰色的视觉变化进行提示。success:成功,能过积极的亮绿色表示成功或积极的动作。danger&…

Day 06 python学习笔记

常见排序算法 先简单讲解一下如何交换两个变量的值 创建临时变量直接交换(a,b b,a) 例: 临时变量: c a a b b c#直接交换 a , b b , a 冒泡排序 两两比较,找最大值换到最后,再找次大值,放次之 以下以…

ubuntu下yolox tensorrt模型部署

TensorRT系列教程之 Windows10下yolov8 tensorrt模型加速部署 TensorRT系列教程之 Linux下 yolov8 tensorrt模型加速部署 TensorRT系列教程之 Linux下 yolov7 tensorrt模型加速部署 TensorRT系列教程之 Linux下 yolov6 tensorrt模型加速部署 TensorRT系列教程之 Linux下 yo…

C#串口原理

串口实际有2种。主要是电压逻辑不一样。玩单片机的人指usb转TTL的串口;普通人指USB转DB9的串口;先看下他们的区别: https://doc.embedfire.com/module/module_tutorial/zh/latest/Module_Manual/port_class/serial_port.html 1. 串口外设总结…

具有快表的地址变换机构

1.快表(TLB) 快表,又称联想寄存器(TLB,translation lookaside buffer), 是一种访问速度比内存快很多的高速缓存(TLB不是内存! ), 用来存放最近访问的页表项的副本,可以加速地址变换的速度。 与…

【Java】JDK动态代理实现原理

代理模式 代理模式一般包含三个角色: Subject:主题对象,一般是一个接口,定义一些业务相关的基本方法。RealSubject:具体的主题对象实现类,它会实现Subject接口中的方法。Proxy:代理对象&#x…

使用CSS圆锥渐变创建背景图案

本文翻译自 How to create background pattern using CSS & conic-gradient,作者: Temani Afif, 略有删改。 拥有一个好的背景图案可以使你的网站设计与众不同。多亏了CSS渐变,我们可以使用几行代码创建花哨炫酷的图案。在这篇…

品牌被侵权也可以免费维权了

构成品牌侵权的理由一般有,商标侵权、专利侵权、著作权侵权等,当这些侵权链接持续存在,必然会影响品牌声誉和利益,同时不利于品牌和谐健康的渠道环境构建,低价、假货、窜货也可算作侵权,那何种侵权可以免费…

抖音热搜榜上榜策略

热点事件是抖音热搜榜的常客,要想登上热搜榜,首先要把握住热点,抢占先机。关注时事新闻、娱乐圈动态、社会热点等,结合自己的短视频内容,迅速制作出相关的短视频,以便在话题讨论初期就吸引用户的关注。同时…