题目:
给定一个二叉树, 检查它是否是镜像对称的
例如以下是镜像对称的
1
/
2 2
/ \ /
3 4 4 3
下面这个则不是镜像对称的
1
/ \
2 2
\ \
3 3
TreeNode类的定义:
static class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
题解:
public static boolean isTreeSymmetric(TreeNode root) {
if(root == null){
return true;
}
return symmetric(root.left, root.right);
}
private static boolean symmetric(TreeNode p, TreeNode q){
if(p== null && q == null){
return true;
}
if( p == null || q== null){
return false;
}
if(p.val != q.val){
return false;
}
return symmetric(p.left, q.right) && symmetric(p.right,q.left);
}
欢迎大家一起交流!Java全套学习资料的电子版,免费分享给大家,关注我的公众号,菜单栏–>技术相关–>免费资源即可领取,还有网课查答案,包括学习通、智慧树、mooc,内容涵盖计算机、政治等等,还有其他免费资源(简历模板、电子版书籍和考试资料等等),说不准大家会有用(分享干货)!
扫码加关注吧!