题目:
判断一棵二叉树是不是对称二叉树
思路:
- 利用递归,先写一个子函数,判断一下两棵树是不是互为镜像,设计思路是当前节点值相等,树1的左子树与树2的右子树互为对称二叉树,且树1的右子树与树2的左子树互为对称二叉树
- 判断一棵树的话就是判断它的两棵子树是不是互为镜像即可
class Solution {
public:
bool isSymmetrical(TreeNode* root)
{
if(root==nullptr)
return true;
return isSym(root->left,root->right);
}
bool isSym(TreeNode* r1,TreeNode *r2){
if(r1==nullptr && r2==nullptr)
return true;
if(!r1 || !r2)
return false;
if(r1->val==r2->val){
return isSym(r1->left,r2->right)&&isSym(r1->right,r2->left);
}
return false;
}
};
网友评论