力扣101 对称树
力扣101 对称树
题目:
给你一个二叉树的根节点 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
解题思路:
判定一棵树是否是对称树首先一棵树的根节点是不会影响整棵树的对称性需要单独考虑,其次就是递归的考虑左右两颗子树是否是对称树。
代码:
/**
* 判断一棵树是否是对称树
*/
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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧