101. 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。

 

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

1
/ \
2 2
/ \ / \
3 4 4 3
 

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

1
/ \
2 2
\ \
3 3

class Solution {
    public boolean isSymmetric(TreeNode root) {
        //使用两个指针p、q,初始同时指向根节点
        //p左移时q右移。p右移时q左移。判断是否相等
        return check(root,root);
    }
    public boolean check(TreeNode p,TreeNode q)
    {
        if(p==null && q == null)
            return true;
        if(p == null || q == null )
            return false;
        //此处肯定要写.val,不是对比节点本身,节点本身肯定是不相同的。
        return p.val==q.val && check(p.left, q.right) && check(p.right,q.left);
        
    }
}

 

posted @ 2021-03-20 14:10  γGama  阅读(21)  评论(0编辑  收藏  举报