101_对称二叉树[EASY]
约 308 字大约 1 分钟
2026-03-22
给你一个二叉树的根节点 root , 检查它是否轴对称。
示例 1: 
输入:root = [1,2,2,3,4,4,3]
输出:true示例 2: 
输入:root = [1,2,2,null,3,null,3]
输出:false解题思路
要判断一个树是否轴对称,其实是在判断:
- 如果树不存在,那么是轴对称
- 如果树存在,它【左子树的值】等于【右子树的值】,并且:
- 【左的左子树】 和 【右的右子树】 是否对称
- 【左的右子树】 和 【右的左子树】 是否对称
Java实现
public boolean isSymmetric(TreeNode root) {
if (root == null){
return true;
}
return check(root.left, root.right);
}
private boolean check(TreeNode left, TreeNode right){
// 左右都为空,对称
if (left == null && right == null){
return true;
}
// 左右之一为空,或者左右都不为空但值不一样,不对称
if (left == null || right == null || left.val != right.val){
return false;
}
// 左右都不为空,值也一样,继续判断:
// A. 【左的左子树】 和 【右的右子树】 是否对称
// B. 【左的右子树】 和 【右的左子树】 是否对称
return check(left.left, right.right) && check(left.right, right.left);
}