面试题28:对称的二叉树

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

bool isSymmetrical(TreeNode* pRoot)
    {
        if (pRoot == nullptr)
            return true;
        return isSymmetrical(pRoot, pRoot);
    }

    bool isSymmetrical(TreeNode* pRoot1, TreeNode* pRoot2)
    {
        //正常退出递归标志:当左右节点同时指向空时,递归返回true退出
        if (pRoot1 == nullptr && pRoot2 == nullptr)
            return true;
        //异常退出递归标志:当左右节点不同时指向空时,递归返回false退出
        if (pRoot1 == nullptr || pRoot2 == nullptr)
            return false;
        //若当前节点值相等,则继续进行递归
        if(pRoot1->val!=pRoot2->val)
            return false;
        //进入递归过程,判断以当前节点为根节点的左右是否等于该节点右左
        return isSymmetrical(pRoot1->left, pRoot2->right) && isSymmetrical(pRoot1->right, pRoot2->left);
    }
全部评论

相关推荐

程序员小白条:不是哥们,晚了差不多半年多才来找工作啊你得有更强的学历和技术,才能有这种资本啊,现在基本都得1-3年的吧,你这就三个月实习了,而且写的这么模糊
点赞 评论 收藏
分享
owwhy:难,技术栈在嵌入式这块显得非常浅,并且简历有大问题。教育经历浓缩成两行就行了,写什么主修课程,说的不好听这块没人在意,自我评价删了,项目写详细点,最终简历缩成一页。相关技能怎么说呢,有点差了,还写成这么多行
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务