0
点赞
收藏
分享

微信扫一扫

【二叉树】牛客网:对称的二叉树

南陵王梁枫 2022-03-22 阅读 57
算法

需要写一个递归函数,check(root1,root2)

判断左子树和右子树是否镜像对称

左子树和右子树镜像对称的条件:左子树的左子树和右子树的右子树镜像对称,左子树的右子树和右子树的左子树镜像对称。

在此基础上需要考虑边界条件

roo1,root2是否为空,及是否为叶子节点

public class Solution {
    boolean check(TreeNode root1,TreeNode root2){
        if(root1==null&&root2!=null||root1!=null&&root2==null)return false;
        if(root1==null&&root2==null)return true;
        if(root1.left==null&&root2.left==null&&root1.right==null&&root2.right==null&&root1.val==root2.val)return true;
       // if(root1.left==null&&root2.left==null&&root1.right==null&&root2.right==null&&root1.val!=root2.val)return false;
        return 
       root1.val==root2.val&&check(root1.left,root2.right)
       &&check(root1.right,root2.left);
    }
    boolean isSymmetrical(TreeNode pRoot) {
        if(pRoot==null)return true;
        return check(pRoot.left,pRoot.right);    
    }
}

举报

相关推荐

0 条评论