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);
}
}