• leetcode 101. Symmetric Tree 对称二叉树(简单)


    一、题目大意

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

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

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/symmetric-tree
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    二、解题思路

    判断一个树是否对称等价于判断左右子树是否对称。分四步:(1)如果两个子树都为空指针,则它们相等或对称(2) 如果两个子树只有一个为空指针,则它们不相等或不对称(3)如果两个子树根节点的值不相等, 则它们不相等或不对称(4)根据相等或对称要求,进行递归处理。

    三、解题方法

    3.1 Java实现

    public class Solution {
    
        public boolean isSymmetric(TreeNode root) {
            if (root == null) {
                return true;
            }
            return isMirror(root.left, root.right);
        }
    
        public boolean isMirror(TreeNode left, TreeNode right) {
            // (1)如果两个子树都为空指针,则它们相等或对称
            if (left == null && right == null) {
                return true;
            }
            // (2) 如果两个子树只有一个为空指针,则它们不相等或不对称
            if (left == null && right != null) {
                return false;
            }
            if (left != null && right == null) {
                return false;
            }
            // (3)如果两个子树根节点的值不相等, 则它们不相等或不对称
            if (left != null && right != null && left.val != right.val) {
                return false;
            }
            // (4)根据相等或对称要求,进行递归处理。
            return isMirror(left.left, right.right) && isMirror(left.right, right.left);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    四、总结小记

    • 2022/9/7 做管理给待遇一定要由远及近
  • 相关阅读:
    id 和 class的区别,使用避坑!
    爬虫之requests-html爬取国外网站大全
    uni app 打肉肉(打飞机)小游戏
    基于SpringBoot的电影评论网站
    腾讯148道面试题,(程序员必备学习方向)全会拿45Koffer没问题
    一文了解riscv软件系列之linux内核编译运行
    驱动开发 Linux按键中断点灯
    后序中序倒推二叉树
    三层架构图解
    数仓范式建模、ER实体建模和维度建模
  • 原文地址:https://blog.csdn.net/ln_ydc/article/details/126743542