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

记录算法笔记(20025.5.14)对称二叉树

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

进阶:你可以运用递归和迭代两种方法解决这个问题吗?

思路:

  1. 定义递归函数:创建一个递归函数 IsMirror,该函数接受两个参数,分别代表二叉树的左子树和右子树的根节点。

  2. 递归终止条件

    • 如果两个节点都为空,返回 true

    • 如果一个为空而另一个不为空,返回 false

    • 如果两个节点的值不相等,返回 false

  3. 递归调用

    • 递归地调用 IsMirror 函数,比较左子树的左子节点和右子树的右子节点。

    • 递归地调用 IsMirror 函数,比较左子树的右子节点和右子树的左子节点。

  4. 返回结果:如果上述两个递归调用都返回 true,则当前节点的左右子树是对称的,返回 true

代码:C#

public class Solution {

    public bool IsSymmetric(TreeNode root) {

        if(root==null)

        return true;

        return isMirror(root.left,root.right);

    }

    private bool isMirror(TreeNode nodeLeft,TreeNode nodeRight)

    {

       if(nodeLeft==null&&nodeRight==null)

       return true;

       if(nodeLeft==null||nodeRight==null||nodeLeft.val!=nodeRight.val)

       return false;

       return isMirror(nodeLeft.left,nodeRight.right) && isMirror(nodeLeft.right,nodeRight.left);

    }

}

相关文章:

  • 【教程】Docker更换存储位置
  • 【机器学习】支持向量回归(SVR)从入门到实战:原理、实现与优化指南
  • Redis的热Key问题如何解决?
  • PostgREST:无需后端 快速构建RESTful API服务
  • 【MySQL】日志缓冲区详解 以及 InnoDB内存结构总结
  • TrimAl介绍
  • RPM 包制作备查 SRPM 包编译
  • 高并发内存池(四):Page Cache结构设计
  • 青少年编程与数学 02-019 Rust 编程基础 12课题、所有权系统
  • AI开发者的算力革命:GpuGeek平台全景实战指南(大模型训练/推理/微调全解析)
  • NLP的基本流程概述
  • 深度剖析 GpuGeek 实例:GpuGeek/Qwen3-32B 模型 API 调用实践与性能测试洞察
  • LeetCode 热题 100_颜色分类(98_75_中等_C++)(技巧)(计数;双指针)
  • Shell和Bash介绍
  • 学习threejs,使用Physijs物理引擎,通过控制重力,实现多米诺骨牌效果
  • Data Mining|缺省值补全实验
  • 【PmHub后端篇】PmHub集成 Sentinel+OpenFeign实现网关流量控制与服务降级
  • 【拥抱AI】Deer-Flow字节跳动开源的多智能体深度研究框架
  • More Effective C++:改善编程与设计(上)
  • java连数据库
  • 财政部党组召开2025年巡视工作会议暨第一轮巡视动员部署会
  • 杭州“放大招”支持足球发展:足球人才可评“高层次人才”
  • 美国明尼苏达州发生山火,过火面积超80平方公里
  • 安徽省委副秘书长、省委政研室主任余三元调任省社科院院长
  • 第二期人工智能能力建设研讨班在京开班,近40国和区域组织代表参加
  • 我国7名优秀护理工作者荣获第50届南丁格尔奖