刷刷刷 Day 15 | 101. 对称二叉树

101. 对称二叉树

LeetCode题目要求

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

图

示例

输入:root = [1,2,2,3,4,4,3]
输出:true
解题思路

通过分别遍历左右两个子树,并对比左右子树的左右子节点是否对称相等,也就是要比较的是左树的左节点与右树的右节点,左树的右节点与右树的左节点
如果都相等,就说明是对称的

上代码,递归

class Solution {
public boolean isSymmetric(TreeNode root) {
if (root == null) {
return true;
}
return compare(root.left, root.right);
}
public boolean compare(TreeNode left, TreeNode right) {
// 比较左右两树
// 1. 如果 left == null && right != null, false
// 2. 如果 left != null && right == null, false
// 3. 如果 left == null && right == null, true
// 4. left right 都不为空时,比较 left.val 是否相等 right.val, 不等 false,相等继续递归
if (left == null && right != null) {
return false;
} else if (left != null && right == null) {
return false;
} else if (left == null && right == null) {
return true;
} else if (left.val != right.val) {
return false;
}
boolean l = compare(left.left, right.right);
boolean r = compare(right.left, left.right);
return l && r;
}
}

附:学习资料链接

posted @   blacksonny  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示