对称的二叉树

/*
struct TreeNode {
int val;
struct TreeNode left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
class Solution {
public:
bool isSymmetrical(TreeNode
pRoot)
{
return isTwoNodeSym(pRoot, pRoot);
}
bool isTwoNodeSym(TreeNode *p1, TreeNode *p2)
{
if(!p1 && !p2) //两棵树均为均为空树
return true;

    if(!p1 || !p2) //其中一棵树为空,则返回false
        return false;

    if(p1->val == p2->val) //若两个结点相等,则进行递归
    {
        //若两棵树的根节点镜像,并且它们的左右孩子分别镜像,则这两棵树镜像
        return isTwoNodeSym(p1->left, p2->right) && isTwoNodeSym(p1->right, p2->left);
    }
    return false;
}

};

全部评论

相关推荐

程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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