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

力扣101. 对称二叉树

递归

  • 思路:
    • 克隆这棵树,递归比较左右子树互为镜像;
    • 终止条件为:
      • 都为nullptr,则返回 true;
      • 有一个为 nullptr,则返回 false;(形状不一致)
      • 形状一致情况下,值要相等、原左子树与镜像右子树、原右子树与镜像左子树也应该互为镜像递归;
/**
 * 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) {
        return check(root, root);
    }

private:
    
    bool check(TreeNode* o, TreeNode* m) {
        if ((o == nullptr) && (m == nullptr)) {
            return true;
        } else if ((o == nullptr) || (m == nullptr)) {
            return false;
        }

        return (o->val == m->val) && check(o->left, m->right) && check(o->right, m->left);
    }
};


http://www.kler.cn/news/149444.html

相关文章:

  • DelayQueue介绍
  • 河道水质在线监测系统:守护河流的生命力
  • 河北中洺科技-数据标注是怎样工作的?
  • 3d模型的中心原点有偏移怎么办?
  • 业余时间用Ruby写个爬取亚马逊爆品,让自己有机会挣点外快
  • 硝烟弥漫的科技战场——GPT之战
  • Java研学-IO流(一)
  • Python与设计模式--模板模式
  • 一篇总结 Linux 系统启动的几个汇编指令
  • java springboot测试类鉴定虚拟MVC运行值与预期值是否相同
  • AI模特换装的前端实现
  • 大数据学习(26)-spark SQL核心总结
  • 鸿蒙应用开发之打包与上架
  • 天软高频时序数据仓库
  • Ubuntu系统Springboot项目Nginx安装(编译安装方式)
  • echarts点击事件
  • vue2+el-select实现分页加载更多功能
  • 插入或更新学生信息的 SQL 语句
  • 【问题解决!】OSError: [WinError 1455] 页面文件太小,无法完成操作。Error loading “c:\Anaconda3\lib
  • 在Windows WSL (Linux的Windows子系统)上运行的Ubuntu如何更改主机名
  • 5W2H分析法
  • git分支拉取时,提示冲突
  • SAP_ABAP_基础编程_DESCRIBE FIELD_获取数据对象的属性
  • 2.ORB-SLAM3中如何从二进制文件中加载多地图、关键帧、地图点等数据结构
  • Leetcode 1727. 具有重排的最大子矩阵
  • RPC之GRPC:什么是GRPC、GRPC的优缺点、GRPC使用场景
  • web:NewsCenter
  • 芯片设计中的DFX
  • skywalking告警UI界面有告警信息,webhook接口没有回调,400错误
  • 【100个Cocos实例】完蛋,你看我在刮刮乐中刮到了什么?