package treeAndRecursion.code101;import treeAndRecursion.TreeNode;/*** @Description* 如果同时满足下面的条件,两个树互为镜像:** 它们的两个根结点具有相同的值* 每个树的右子树都与另一个树的左子树镜像对称** * 左子树的左和右子树的右是否相等* 左子树的右和右子树子的左是否相等* @Date 2022/7/12 21:44* @Author wuqichuan@zuoyebang.com**/public class Solution { public boolean isSymmetric(TreeNode root) { return check(root,root); } public boolean check(TreeNode left , TreeNode right){ if(left == null && right == null){ return true; } if(left == null || right == null){ return false; } //如果左右节点的值相等,则去判断 //1:左子树的左和右子树的右是否相等 //2:左子树的右和右子树子的左是否相等 if(left.val == right.val){ boolean flag1 = check(left.left,right.right); boolean flag2 = check(left.right,right.left); return flag1 && flag2; }else{ return false; } }}