1
2 2
3 4 4 3
类似上面这种
思路:
从根节点左右分为两棵树,对比两棵树是否每一层逆序,跟这道题相似ajhttp://t.csdnimg.cn/BYIPg
class Solution {
public boolean isSymmetric(TreeNode root) {
if (root == null) return true; // 空树是对称的
return isMirror(root.left, root.right); // 检查左右子树是否对称
}
public boolean isMirror(TreeNode t1, TreeNode t2) {
if (t1 == null && t2 == null) return true; // 两棵树都为空,对称
if (t1 == null || t2 == null) return false; // 其中一棵树为空,不对称
return (t1.val == t2.val)
&& isMirror(t1.right, t2.left) // 递归检查右子树和左子树
&& isMirror(t1.left, t2.right); // 递归检查左子树和右子树
}
}