28. 对称的二叉树

剑指 Offer 22. 对称的二叉树 #

题目 #

请实现一个函数,用来判断一棵二叉树是否是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。

思路 #

代码 #

public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode(int x) { this.val = x; }
}
class Solution {
    public boolean isTwoSymmetric(TreeNode root1, TreeNode root2) {
        if (root1 == null) return root2 == null;
        if (root2 == null) return false;
        
        return (root1.val == root2.val) & isTwoSymmetric(root1.left, root2.right) & isTwoSymmetric(root1.right, root2.left);
    }
    public boolean isSymmetric(TreeNode root) {
        if (root == null) return true;
        return isTwoSymmetric(root.left, root.right);
    }
}