当前位置: 首页 > news >正文

101. 对称二叉树【同时遍历两棵树】【C++】

题目描述

给你一个二叉树的根节点 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

思路

对于二叉树的题目,首先分析使用什么遍历顺序,我们需要比较左子树外侧(root->left)和右子树外侧(root->right),左子树内侧(root->right)和右子树内侧(root->left),它们都相等时才满足。我们需要后序遍历,因为需要从下到上传递是不是对称二叉树的信息。

代码

class Solution {
public:bool isSymmetric(TreeNode* root) {if (root == nullptr) {return true;}return dfs(root -> left, root -> right);}bool dfs(TreeNode* left, TreeNode* right) {if (left && right == nullptr) {  //终止条件return false;} else if (left == nullptr && right){return false;} else if (left == nullptr && right == nullptr) {return true;} else if (left -> val != right -> val) {return false;}bool sameOut = dfs(left -> left, right -> right);  //后序遍历,向上传递信息bool sameIn = dfs(left -> right, right -> left);return sameIn && sameOut;}
};

总结

后序遍历:一般是从叶子节点返回信息,所以有这个特性就可以考虑后序遍历。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数据库———事务及bug的解决
  • python怎么打开编辑器
  • 古诗词四首鉴赏
  • git配置SSH
  • 电脑ip会因为换了网络改变吗
  • Spring Boot-依赖冲突问题
  • monorepo基础搭建教程(从0到1 pnpm+monorepo+vue)
  • 缺陷及缺陷管理(复习)
  • 企业微信应用消息收发实施记录
  • WPS生成目录
  • [PTA]7-3 选择法排序
  • 2024年最新软件测试面试题必问的1000题!
  • 希亦超声波清洗机值得购买吗?百元清洁技术之王,大揭秘!
  • flutter遇到问题及解决方案
  • PFC理论基础与Matlab仿真模型学习笔记(1)--PFC电路概述
  • Google 是如何开发 Web 框架的
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • ➹使用webpack配置多页面应用(MPA)
  • Android交互
  • ES6语法详解(一)
  • JavaScript实现分页效果
  • Kibana配置logstash,报表一体化
  • php中curl和soap方式请求服务超时问题
  • python 装饰器(一)
  • Python利用正则抓取网页内容保存到本地
  • Python实现BT种子转化为磁力链接【实战】
  • Redash本地开发环境搭建
  • 分布式任务队列Celery
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 使用putty远程连接linux
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • #pragma multi_compile #pragma shader_feature
  • #pragma once
  • (06)Hive——正则表达式
  • (1)(1.11) SiK Radio v2(一)
  • (2)(2.10) LTM telemetry
  • (2)STM32单片机上位机
  • (3) cmake编译多个cpp文件
  • (4.10~4.16)
  • (ZT)一个美国文科博士的YardLife
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot教学评价 毕业设计 641310
  • (算法)N皇后问题
  • (一) storm的集群安装与配置
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (杂交版)植物大战僵尸
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .CSS-hover 的解释
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇