对称(镜像)二叉树

news2025/7/17 20:18:42

在这里插入图片描述
之前写的比较两棵树是否相等,是左子树和左子树比,右子树和右子树比——利用这个思想镜像二叉树就是从第二层的两个节点作为两棵树的根,然后比较,这里的比较是左子树和右子树比,右子树和左子树比
——也就是利用比较两个二叉树是否相等的变形:


 bool isSameTree(struct TreeNode* p, struct TreeNode* q)
{
    //两个都为空
    if(p==NULL&&q==NULL)
    {
        return true;
    }
    //有一个为空
    if(p==NULL||q==NULL)
    {
        return false;
    }
    //两个不为空,但值不相同
    if(p->val!=q->val)
    {
        return false;
    }
    //值相同
    return isSameTree(p->left,q->right)&& isSameTree(p->right,q->left);

}
bool isSymmetric(struct TreeNode* root){
   return  isSameTree(root->left,root->right);
}

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

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

相关文章

CS鱼饵制作

文章目录 宏病毒(宏钓鱼)快捷方式钓鱼shellQMaker bug伪装pdf文件上线 宏病毒(宏钓鱼) 启动teamsever服务器,具体过程请参考我之前的文章: 在主机中启动CS客户端,111是真实机的用户&#xff1a…

电压参考芯片 LM285D-1.2 备忘

LM285D-1.2 是一款参考电压芯片,本次备忘使用的数据手册是安美森家的。 LM285D 中的 D 指的是 SOIC-8 封装,是贴片的; 而 LM285Z 中的 Z 指的是 TO-92 封装,是直插的。购买时需要注意,防止买错封装。 注:以下参数中&…

Vue之Vue的介绍安装开发实例生命周期钩子

博主心得: keyup必须与change一起使用v-on.click可以直接写成clickclick“setVal”里的setVal换成数字之后有惊喜VS Code是真的狗,一些报错根本不会直接显示总结:VS code太狗了 1.vue介绍 1.1 什么是vue vue是一个构建用户界面UI的渐进式jav…

LLM-RAG-WEB 大模型+文件+可视化界面

注意:这里只是简单实现了功能和界面,文件对话也暂时只支持一个文件,如果跳到模型对话再切换回文件对话会文件会删除重置会话,但模型对话切换回来时保留之前会话的。 1、代码(使用步骤说明在链接里) 参考下…

transformer_01

一、传统RNN存在的问题 1.序列前序太长,每个xi要记住前面的特征,而且一直在学,没有忘记,可能特征不能学的太好 2.串行,层越多越慢,难以堆叠很多层; 3.只能看到过去,不能看到未来 搞…

二维码智慧门牌管理系统:高效标准化处理地址数据

文章目录 前言一、标准化数据的重要性二、标准检查与自动化处理三、人工修复与高效性四、数据应用与效益 前言 随着科技的快速发展,数据管理在现代社会中扮演着越来越重要的角色。为了提升数据质量,标准化检查成为必不可少的环节。今天,我们…

Cobalt Strike

文章目录 Cobalt Strike1. Cobalt Strike 简介2. Cobalt Strike 和 MSF 的区别3. Cobalt Strike server4. Cobalt Strike client4.1 安装插件4.2 运行木马4.3 参数详情 5. Cobalt Strike 鱼饵制作5.1 宏5.2 Power shell5.3 快捷方式5.4 ShellQMaker 免杀5.5 伪装pdf文件 Cobalt…

基于龙格-库塔优化的BP神经网络(分类应用) - 附代码

基于龙格-库塔优化的BP神经网络(分类应用) - 附代码 文章目录 基于龙格-库塔优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.龙格-库塔优化BP神经网络3.1 BP神经网络参数设置3.2 龙格-库塔算法应用 4.测试…

【JVM系列】- 类加载子系统与加载过程

类加载子系统与加载过程 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得,欢迎指正…

【Linux】文件IO基础知识——上篇

目录 前文 一, 系统级——文件操作接口 a. open b. close c. write d. read 二,接口理解 那文件描述符——fd是什么呢? 三,文件描述符分配规则 原理 四,重定向——dup2 简易shell——重定向 五&#xff0c…

laravel中锁以及事务的简单使用

一、首先来说一下什么是共享锁?什么是排他锁? 共享:我可以读 写 加锁 , 别人可以 读 加锁。 排他:只有我 才 可以 读 写 加锁 , 也就是说,必须要等我提交事务,其他的才可以操作。 二、简单例子实现加锁 锁…

基于C8051F380的流水灯设计

一、C8051F380简介: C8051F380-GQ 是Silicon Labs的一款高度集成的汽车和工业微控制器 MCU。C8051F380的CPU内核为8051,内核规格: 8 位 , 速度: 48 MIPS ; CPU最大主频:192MHz ;工作电压范围:2.7V~5.25V &a…

用shell批量修改文件名

场景一 给这些文件都加上.png后缀 #!/bin/bash for i in *; do mv "$i" "$i.png"; done 场景二 给某些文件按某种规则重命名,如按照1,2,3,4…命名,保留原格式 注: Shell中实现整数自增的几种方法示例,此处用于声明是数字类型的declare -i必须添加,否则…

MyBatisPlue-03

一 映射匹配兼容机制 1.映射数据库的字段名 问题描述: 当数据库表字段和实体类的属性名称出现不匹配时: 解决: 知识点: 2.忽略实体类的部分字段 问题描述: 当要表示如 显示用户是否在线等消息,&#xf…

物联网AI MicroPython传感器学习 之 ADXL345 3轴加速度传感器

学物联网,来万物简单IoT物联网!! 一、产品简介 ADXL345是一款完整的3轴加速度测量系统,可选择的测量范围有士2g,士4g,士8g或士16g。它既能测量运动或冲击导致的动态加速度,也能测量静止加速度&…

C++对象模型(13)-- 构造函数语义学:析构函数

1、默认析构函数生成规则 跟构造函数一样,编译器不一定会为类生成默认析构函数。生成默认析构函数的规则有下面2条: (1)包含一个类类型的成员变量,且成员变量所属的类有默认析构函数。 (2)其…

机器学习笔记 - 3D 对象跟踪极简概述

一、简述 大多数对象跟踪应用程序都是 2D 的。但现实世界是 3D 的,无论您是跟踪汽车、人、直升机、导弹,还是进行增强现实,您都需要使用 3D。在 CVPR 2022(计算机视觉和模式识别)会议上,已经出现了大量3D目标检测论文。 二、什么是 3D 对象跟踪? 对象跟踪是指随着时间的…

柔性数组的使用及注意事项

1.柔性数组在结构体当中,并且在结构体的最后面. 2.结构体中除了柔型数组外至少还要有一个其他成员. 3.sizeof()返回结构体的大小不包含柔性数组的大小. 4.malloc 例:struct sdshdr16 *p malloc(sizeof (struct sdshdr16) 32); // 32 为柔性数组的大小 5.free 例: fre…

weblogic任意文件上传漏洞操作(CVE-2018-2894)

运行weblogic,直接找到目录运行,或者cmd命令打开运行 启动之后如下:http://192.168.246.11:7001/console/login/LoginForm.jsp 打开网页http://192.168.0.127:7001/ws_utc/config.do 修改默认路径C:\Oracle\Middleware\Oracle_Home\user_pro…