题目:简单题

给定一颗二叉树,判断是否是自身镜像。

示例:略

思路:

此题与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);
        }
       
    }
}