题目:简单题
给定一颗二叉树,判断是否是自身镜像。
示例:略
思路:
此题与LeetCode 101是相同的题,也与LeetCode 100思路相同。我们可以定义一个方法,传入两个参数当做两棵树,还是首先判断两棵树是否为空,为空则返回true,再判断是否存在一棵树为空,另一颗不为空,则是false。最后判断两个树的节点值是否相同。
代码:
public class Solution {
boolean isSymmetrical(TreeNode root) {
return check(root, root);
}
boolean check(TreeNode p, TreeNode q) {
if (p == null && q == null) {
return true;
}else if (p == null || q == null) {
return false;
}else{
return p.val == q.val && check(p.left, q.right) && check(p.right, q.left);
}
}
}