本文共 646 字,大约阅读时间需要 2 分钟。
定义二叉树对称的概念为 二叉树的镜像和原二叉树相同
经过变换后 原二叉树的左子树变为右子树,左子树的左子树变为右子树的右子树,左子树的右子树变为右子树的左子树
代码
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); }};
转载地址:http://kehji.baihongyu.com/