package leetcode;
public class offer_28 {
    public boolean isSymmetric(TreeNode root) {
        if(root==null) {
            return true;
        }
        return compare(root.left, root.right);
    }
    
    
    public boolean compare(TreeNode root1,TreeNode root2) {
        //左右节点递归至最底层依旧相等,则为true
        if(root1==null&&root2==null) {
            return true;
        }
        
        //左右节点有一个为空则为false
        if(root1==null||root2==null) {
            return false;
        }
        
        //左右节点值不相等则为false
        if(root1.val!=root2.val) {
            return false;
        }
        //左节点的左节点和右节点的右节点,左节点的又节点和右节点的左节点需要相等
        return compare(root1.left, root2.right)&&compare(root1.right,root2.left);
    }
}