对称二叉树
1.
/* 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 isSymmetrical(pRoot,pRoot);//c传入两个一样的 方便对比 //留给下级判断 } public: bool isSymmetrical(TreeNode* pRoot1,TreeNode* pRoot2) { if(pRoot1==nullptr&&pRoot2==nullptr) //都是空树 也是对称的 return true; 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); } };