力扣101 对称树

力扣101 对称树

题目:

给你一个二叉树的根节点 root , 检查它是否轴对称。

示例 1:

img

输入:root = [1,2,2,3,4,4,3]
输出:true

示例 2:

img

输入:root = [1,2,2,null,3,null,3]
输出:false

提示:

  • 树中节点数目在范围 [1, 1000]
  • -100 <= Node.val <= 100

解题思路:

判定一棵树是否是对称树首先一棵树的根节点是不会影响整棵树的对称性需要单独考虑,其次就是递归的考虑左右两颗子树是否是对称树。

代码:

/**
 * 判断一棵树是否是对称树
 */
public class IsMirrorTree {
    //1.首先定义一个树节点的类
    public static class TreeNode{
        public int value;
        public  TreeNode left;
        public TreeNode right;

        public TreeNode(int value) {
            this.value = value;
        }
    }
    //2.首先传入的是整棵树的一个头节点该节点不会影响树的对称性
    public static boolean isSymmetricTree(TreeNode root){
        //这儿的第二个root可以认为是root`
        return isMirrorTree(root,root);
    }
    //3.定义一个方法判断是否是对称树
    public static boolean isMirrorTree(TreeNode h1,TreeNode h2){
        //3.1如果一个节点为空一个节点不为空那么该树肯定不是对称树
        if(h1 == null ^ h2 == null){
            return false;
        }
        //3.2如果两个节点都为空那么这两个节点是对称的返回true
        if (h1 == null && h2 == null){
            return true;
        }
        //3.3判断对称首先节点的值要相等且左树要与右树相等右树要与左树相等
        return h1.value == h2.value && isMirrorTree(h1.left,h2.right) && isMirrorTree(h1.right,h2.left);
    }
}
posted @   卬啵哩啵bo  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示