题目描述
给你一个二叉树的根节点 root , 检查它是否轴对称。
方法1
描述
根据题目的描述,镜像对称,就是左右两边相等,也就是左子树和右子树是相当的。
注意这句话,左子树和右子相等,也就是说要递归的比较左子树和右子树。
我们将根节点的左子树记做 left ,右子树记做 right 。比较 left 是否等于 right ,不等的话直接返回就可以了。
如果相当,比较 left 的左节点和 right 的右节点,再比较 left 的右节点和 right 的左节点
代码
package easy.对称二叉树101 ;
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {
}
TreeNode(int val) {
this .val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this .val = val;
this .left = left;
this .right = right;
}
}
class Solution {
public boolean isSymmetric (TreeNode root) {
if (root == null ) {
return true ;
}
return dfs(root.left, root.right);
}
private boolean dfs (TreeNode left, TreeNode right) {
if (left == null && right == null ) {
return true ;
}
if (left == null || right == null ) {
return false ;
}
if (left.val != right.val) {
return false ;
}
return dfs(left.left, right.right) && dfs(left.right, right.left);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程