当前位置: 首页 > 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/a/149444.html

相关文章:

  • 半导体企业如何利用 Jira 应对复杂商业变局?
  • Node.js笔记
  • C++,STL 054(24.11.13)
  • 【C++】new操作符的使用说明
  • 24/11/13 算法笔记<强化学习> DQN算法
  • Unity3D 包体裁剪与优化详解
  • 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如何更改主机名