• 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);
        }
    }
    

    四、总结小记

    • 2022/9/7 做管理给待遇一定要由远及近
  • 相关阅读:
    .NET Core 使用NPOI读取Excel返回泛型List集合
    C# 判别系统版本以及Win10的识别办法
    WPF 程序员休息数字时钟
    分享一个淘宝/天猫/京东/阿里 图片抓取工具
    记一次数据库同步经历(sql server 2008)
    datagridview 如何显示记载中
    关于如何解决bootstrap table 列 切换 刷新 高度不一样
    js 中 函数的返回值问题
    winform 实现定位
    winform 里 如何实现文件上传
  • 原文地址:https://www.cnblogs.com/okokabcd/p/16665047.html
Copyright © 2020-2023  润新知