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

101. 对称二叉树

目录

一、问题描述

二、解题思路

三、代码

四、复杂度分析


一、问题描述

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

二、解题思路

我们可以使用递归来判断两棵子树是否镜像:

镜像的定义

  • 根节点值相同

  • 左子树的左边 == 右子树的右边

  • 左子树的右边 == 右子树的左边

三、代码

/*** 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 isMirror(root->left, root->right);}private:// 判断两棵树是否互为镜像bool isMirror(TreeNode* t1, TreeNode* t2) {if (!t1 && !t2) return true; // 两个空树是镜像的if (!t1 || !t2) return false; // 一个空一个非空,不对称if (t1->val != t2->val) return false; // 节点值不相等,不对称// 左对右,右对左进行递归比较return isMirror(t1->left, t2->right) && isMirror(t1->right, t2->left);}
};

四、复杂度分析

  • 时间复杂度:O(n),n 是节点数,遍历了整棵树。

  • 空间复杂度:O(h),h 是树的高度,用于递归栈。

http://www.xdnf.cn/news/747.html

相关文章:

  • 深度学习相关技术
  • python tkinter库窗口的使用
  • Netty使用教程
  • 闭包函数的应用与理解
  • 探索 Model Context Protocol (MCP):它如何影响 AI 的表现?
  • 【android bluetooth 框架分析 02】【Module详解 12】【 BidiQueue、BidiQueueEnd、Queue介绍】
  • QT常见输入类控件及其属性
  • 5 matplotlib样式和颜色设置
  • 脑影像分析软件推荐| GraphVar介绍
  • Java学习笔记(数组,方法)
  • 英语学习4.20
  • 算法题(129):二维前缀和
  • C 语言的未来:在变革中坚守与前行
  • 字符输入验证函数
  • PI0 Openpi 部署(仅测试虚拟环境)
  • 百望山游记,佘太君庙,杨家将的故事
  • 【HDFS入门】HDFS故障排查与案例分析:从日志分析到实战解决
  • Linux 进程控制(自用)
  • centos停服 迁移centos7.3系统到新搭建的openEuler
  • 2025年人工智能指数报告:技术突破与社会变革的全景透视
  • 2022 CCF CSP-S2.策略游戏
  • Transformer系列(一):NLP中放弃使用循环神经网络架构
  • xss4之cookie操作
  • SpringBoot Actuator指标收集:Micrometer与Prometheus集成
  • 【网络篇】从零写UDP客户端/服务器:回显程序源码解析
  • 基于kubernetes1.23.17容器化部署RuoYi全栈项目手册
  • AI与思维模型【69】——人类误判心理
  • 计算机视觉与深度学习 | TensorFlow基本概念与应用场景:MNIST 手写数字识别(附代码)
  • 洛谷题目:P7775 [COCI 2009/2010 #2] VUK 题解 (本题简)
  • 雨滴传感器详解(STM32)