二叉树——对称二叉树

题目:给你一个二叉树的根节点 root , 检查它是否轴对称,检查结果用布尔值返回。

核心逻辑

对称二叉树 = 左子树和右子树互为镜像

  • 左节点的左孩子<->右节点的右孩子
  • 左节点的右孩子<->右节点的左孩子

根据核心逻辑可以判断这道题的题解应该用递归的思路

完整代码实现如下:

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 isMirror(root.left, root.right);
}

// 辅助函数:判断两个树是否镜像
private boolean isMirror(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 isMirror(left.left, right.right)
&& isMirror(left.right, right.left);
}
}

posted @ 2026-04-13 16:48  ZealousMclaren  阅读(9)  评论(0)    收藏  举报