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

LeetCode:101. 对称二叉树

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的!
代码随想录

LeetCode:101. 对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。
示例 1:
在这里插入图片描述
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:

在这里插入图片描述
输入:root = [1,2,2,null,3,null,3]
输出:false

递归法,类似后序遍历,按照左右中的顺序依次比较

	public boolean isSymmetric(TreeNode root) {
        if (root == null)
            return true;
        return compare(root.left, root.right);
    }

    private boolean compare(TreeNode left, TreeNode right) {
        if (left == null && right != null)
            return false;
        else if (left != null && right == null)
            return false;
        else if (left == null && right == null)
            return true;
        else if (left != null && right != null && left.val != right.val)
            return false;
        else {
            boolean flag1 = compare(left.left, right.right);
            boolean flag2 = compare(left.right, right.left);
            return flag1 && flag2;
        }
    }

迭代法,使用队列来实现,使用队列来成对的存放需要比较的元素

	public boolean isSymmetric(TreeNode root) {
        if (root == null)
            return true;
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root.left);
        queue.offer(root.right);
        while (!queue.isEmpty()) {
            // 通过队列来成对的存放需要比较的元素
            TreeNode left = queue.poll();
            TreeNode right = queue.poll();
            if (left == null && right == null)
                continue;
            if (left == null || right == null || left.val != right.val)
                return false;
            queue.offer(left.left);
            queue.offer(right.right);
            queue.offer(left.right);
            queue.offer(right.left);
        }
        return true;
    }

http://www.kler.cn/a/450239.html

相关文章:

  • 羊城杯2020 easycon
  • 牵手红娘:牵手App红娘助力“牵手”,脱单精准更便捷
  • 【魅力golang】之-通道
  • Redis+注解实现限流机制(IP、自定义等)
  • HDR视频技术之十一:HEVCH.265 的 HDR 编码方案
  • java全栈day19--Web后端实战(java操作数据库3)
  • Vue3 组件 view-shadcn-ui 2024.5.3 发布
  • 如何利用Java爬虫按关键字搜索苏宁易购商品
  • 精准提升:从94.5%到99.4%——目标检测调优全纪录
  • 搭建Docker Harbor仓库
  • Qt5 cmake引用private头文件
  • scrapy 融合selenium
  • web的五个Observer API
  • 过滤掉list中两个连续的元素
  • C# 文件系统I/O操作--什么是I/O
  • day14-补充静态网卡配置
  • git 提交代码无法连接:Failed to connect to github.com port 443 after 21060 ms
  • 数据结构:双向循坏链表
  • 一文搞懂MYSQL、SQL、SQLServer、SQLyog的区别和联系
  • 英语四六级备考必备:2015-2024年历年真题+解析全汇总
  • 最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解LRMOP1-LRMOP6及工程应用---盘式制动器设计,提供完整MATLAB代码
  • 最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解GLSMOP1-GLSMOP9及工程应用---盘式制动器设计,提供完整MATLAB代码
  • 利用代码程序计算数学函数的泰勒展开式(MATLAB推导函数泰勒展开式+Python推导函数泰勒展开式)
  • springboot/ssm个人博客系统Java代码编写web在线博客相册管理项目
  • 垂起固定翼无人机大面积森林草原巡检技术详解
  • 详解MySQL中 MVCC