Day37 代码随想录打卡|二叉树篇---对称二叉树

news2024/11/13 11:04:58

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

方法:本体可以用递归和迭代两种方法,但我更喜欢迭代的方式,因此使用迭代的方式做一下。首先我们分析一下不对称的情况。因为对称的情况很简单,即两个节点相等,同时为空或者是同时不为空且数值相等。不对称的情况可能有以下几种:一边为空,另一边不为空;两边都不为空但数值不相等。因此我们可以将需要比对的节点按照顺序放入队列中,并用树的节点指针取出需要比对的节点,依次按照我们上面描述的几种情况判断是否对称,随后将左子树的左节点,右子树的右节点,左子树的右节点和右子树的左节点按照顺序放入队列中,等待着进行下一轮的比对。

题解:

class Solution {
public:
    bool isSymmetric(TreeNode* root) {
        if(root == NULL) return true;          //根节点为空是对称的
        queue<TreeNode*> que;
        que.push(root->left);                  //根的左子树入队
        que.push(root->right);                 //根的右子树入队
        
        while(!que.empty()){
            TreeNode* leftNode = que.front();  que.pop();
            TreeNode* rightNode = que.front();  que.pop();
            if (!leftNode && !rightNode) {     //左右节点同时为空,算对称的
                continue;
            }
            if((!leftNode || !rightNode || (leftNode->val != rightNode->val))){
                return false;
            }
            que.push(leftNode->left);          //左子树的左节点
            que.push(rightNode->right);        //右子树的右节点
            que.push(leftNode->right);         //左子树的右节点
            que.push(rightNode->left);         //右子树的左节点
        }
        return true;
    }
};


 

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

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

相关文章

新购入的读码器该如何测试呢?

物联网技术的飞速发展&#xff0c;条码二维码作为一种高效、便捷的数据传输方式&#xff0c;已经广泛应用于仓储、物流配送、零售与结算、MES系统等生活和工业领域。新购的条码二维码读码器&#xff0c;在使用前要了解它的使用方法和性能&#xff0c;以确保其性能稳定、读取准确…

【练手项目】基于STM32的智能空调系统

项目设计说明&#xff1a; 所用到的知识点&#xff1a; GPIO、串口通信、 定时器、ADC采样、 LCD显示屏、 DHT11的通信协议。 功能概述&#xff1a; LCD显示屏&#xff1a;开机显示开启界面&#xff0c;设备自检成功后显示温湿度&#xff0c; 风机开关情况 &#xff0c;制冷片…

python数据处理与分析入门-Pandas数据可视化例子

相关内容 Matplotlib可视化练习 Pandas 数据可视化总结 柱状图 reviews[points].value_counts().sort_index().plot.bar()散点图 reviews[reviews[price] < 100].sample(100).plot.scatter(xprice, ypoints)蜂窝图 reviews[reviews[price] < 100].plot.hexbin(xprice…

Day08:CSS 高级

目标&#xff1a;掌握定位的作用及特点&#xff1b;掌握 CSS 高级技巧 一、定位 作用&#xff1a;灵活的改变盒子在网页中的位置 实现&#xff1a; 1.定位模式&#xff1a;position 2.边偏移&#xff1a;设置盒子的位置 leftrighttopbottom 水平方向偏移&#xff1a;left、…

图论(四)—最短路问题(Dijkstra)

一、最短路 概念&#xff1a;从某个点 A 到另一个点B的最短距离&#xff08;或路径&#xff09;。从点 A 到 B 可能有多条路线&#xff0c;多种距离&#xff0c;求其中最短的距离和相应路径。 最短路径分类&#xff1a; 单源最短路&#xff1a;图中的一个点到其余各点的最短路径…

成功案例(IF=7.4)| 代谢组+16s联合分析助力房颤代谢重构的潜在机制研究

研究背景 心房颤动&#xff08;AF&#xff09;是临床上最常见的持续性心律失常&#xff0c;具有显著的发病率和死亡率。高龄是房颤发病率、患病率和进展最显著的危险因素。与年龄在50-59岁之间的参与者相比&#xff0c;80-89岁之间的参与者患房颤的风险增加了9.33倍。目前尚不…

【第4章】SpringBoot整合Lombok

文章目录 前言一、准备1. 安装插件2. 引入库 二、使用1.实体类2.测试类3. 输出 总结 前言 Project Lombok是一个java库&#xff0c;它可以自动插入编辑器和构建工具&#xff0c;为您的java程序锦上添花。 再也不要写另一个getter或equals方法了&#xff0c;只要有一个注释&…

国内AI大模型的下半场-「百模大战免费篇」上线,让我们直接梦回十年前

| 我们正在经历第九次「烧钱」大战。 这个故事&#xff0c;大概要从2024年5月6号&#xff0c;一个叫DeepSeek-V2的模型开始说起。 那一天&#xff0c;DeepSeek宣布开源他们的第二代MoE大模型——DeepSeek-V2。根据披露的信息显示&#xff0c;该模型在性能上比肩GPT-4 Turbo。刚…

加仓硬核科技最好的时刻来了!

5月27日消息&#xff0c;港股三大指数V型转涨&#xff0c;恒指涨1.17%&#xff0c;科指涨1.72%&#xff0c;国指涨1.25%。板块方面&#xff0c;大型科技股走势分化&#xff0c;美团、阿里、腾讯小幅上涨&#xff0c;网易跌1.97%&#xff0c;京东跌0.67%&#xff0c;联想股价创历…

算术运算符

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 算术运算符是处理四则运算的符号&#xff0c;在数字的处理中应用得最多。常用的算术运算符如表4所示。 表4 常用的算术运算符 运 算 符 说 明…

Java:IO

首 java.io中有百万计的类&#xff0c;如何找到自己需要的部分&#xff1f; 流 IO涉及到一个“流”stream的概念&#xff0c;可以简单理解成数据从一个源头到一个目的地。明白数据从哪来&#xff0c;要到哪里去&#xff0c;数据流中是字节还是字符之后&#xff0c;才能找到自…

家政预约小程序06服务展示

目录 1 首页展示2 团购详情总结 在家政小程序中&#xff0c;最重要的信息就是各项服务的内容。顾客通过服务的信息&#xff0c;了解家政公司可以提供什么样的服务以及相关的收费。本篇我们介绍一下服务展示功能如何开发。 1 首页展示 在首页我们已经开发了活动展示、服务分类展…

来自Java的“菱形继承“,你听说过吗?

一、菱形继承的概念 菱形继承又叫做钻石继承&#xff0c;指的是不同的类同时继承自相同的父类&#xff0c;存在一个子类同时继承这些不同的类&#xff0c;即我们常说的“多继承”问题。 例如&#xff1a;B类和C类分别继承A类&#xff0c;而D类同时继承B类和C类。 如此图所示 二…

输出相关命令

什么是输入输出重定向&#xff0c;就是用另外一个位置来代替它&#xff0c;默认输入为键盘&#xff0c;默认输出为终端窗口 管道能把一系列的命令连起来&#xff0c;&#xff5c;为命令符 cat file 历史查询 history 回车可以查到用过的命令。上下左右键可以回到之前命令或…

深入理解深度学习中的激活层:Sigmoid和Softmax作为非终结层的应用

深入理解深度学习中的激活层&#xff1a;Sigmoid和Softmax作为非终结层的应用Sigmoid 和 Softmax 激活函数简介Sigmoid函数Softmax函数 Sigmoid 和 Softmax 作为非终结层多任务学习特征变换增加网络的非线性实际案例 注意事项结论 深入理解深度学习中的激活层&#xff1a;Sigmo…

【算法专题】双指针算法之 移动零

欢迎来到CILMY23的博客 &#x1f3c6;本篇主题为&#xff1a;双指针算法之移动零 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux &#x1f3c6;感谢观看&#xff0c;支持的…

这3个AI自动生成绘画软件太好用啦!画画人必看

AI自动生成绘画软件正在成为艺术创作领域的一股新潮流&#xff0c;它们以其强大的功能和用户友好的设计&#xff0c;为艺术家们带来了前所未有的便利和创意空间。今天&#xff0c;我们将一起探索5款备受好评的AI自动生成绘画软件&#xff0c;它们不仅功能全面&#xff0c;而且操…

黎加厚教授:生成式人工智能对课程教材教法的影响

01 生成式人工智能与过去的信息技术有哪些不一样的地方 2023年&#xff0c;生成式人工智能&#xff08;GenAI&#xff09;犹如百年惊雷&#xff0c;改变了我对计算机的认识。最先让我折服的是AI绘画&#xff0c;我只需要把心中想象的场景用提示词详细描述&#xff0c;立刻就生…

Ubuntu执行命令出现乱码,菱形符号

1、问题描述 如题&#xff0c;Ubuntu执行命令出现乱码&#xff0c;菱形符号&#xff08;见下图&#xff09;&#xff1a; 2、解决办法 export LC_ALLC 再运行就好了

comfyui电商场景工作流总结

eSheep(内测中) - 一站式的AIGC社区eSheep.com 是国内知名的AIGC在线画图网站,提供海量模型,并支持在线AI画图。用户会上传自己的AIGC作品到网站上,进行交流。eSheep让AIGC更轻松,让更多人在AIGC中找到快乐https://www.esheep.com/apphttps://openart.ai/workflows/all