二叉树是否对称

来源:互联网 发布:听演讲的软件 编辑:程序博客网 时间:2024/05/14 17:36

定义二叉树对称的概念为 二叉树的镜像和原二叉树相同

经过变换后 原二叉树的左子树变为右子树,左子树的左子树变为右子树的右子树,左子树的右子树变为右子树的左子树


代码

 struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } }; class Solution {    bool cmpRoot(TreeNode *l,TreeNode *r){        if(l==NULL) return r==NULL;//左右都为空,返回true        if(r==NULL) return false;//左为空,右不为空 返回false        if(l->val!=r->val) return false;//值不相同不对称        return cmpRoot(l->right, r->left)&&cmpRoot(l->left, r->right);    }public:    bool isSymmetrical(TreeNode* pRoot)    {        if(!pRoot)            return true;        return cmpRoot(pRoot->left, pRoot->right);    }};


0 0
原创粉丝点击