剑指Offer(五十八)二叉树对称(Java版 )

一、题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

二、代码分析

public class Solution {
    boolean isSymmetrical(TreeNode pRoot)
    {
        return isSymmetrical(pRoot,pRoot);
    }
    //首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同
    //左子树的右子树和右子树的左子树相同即可,采用递归
    boolean isSymmetrical(TreeNode pRoot1, TreeNode pRoot2) {
        if (pRoot1 == null && pRoot2 == null)
            return true;
        if (pRoot1 == null || pRoot2 == null)
            return false;
        if (pRoot1.val != pRoot2.val)
            return false;
        return isSymmetrical(pRoot1.left,pRoot2.right) && isSymmetrical(pRoot1.right, pRoot2.left);
    }
}

转载请标明出处,原文地址:https://blog.csdn.net/weixin_41835916
如果觉得本文对您有帮助,请点击支持一下,您的支持是我写作最大的动力,谢谢。这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41835916/article/details/80852187