对称二叉树
给定一个二叉树,检查它是否是镜像对称的。
解题思路:
若一个二叉树root是镜像对称的,则与克隆体rootcopy有:
- 根节点相同
- root每个右子树与rootcopy左子树镜像对称
- root每个左子树与rootcopy右子树镜像对称
实现代码:
class Solution {
public:
bool isSymmetric(TreeNode* root) {
return ismirror(root,root);
}
bool ismirror(TreeNode* t1,TreeNode* t2)
{
if(t1==NULL&&t2==NULL)//都为空
return true;
if(t1==NULL||t2==NULL)//有一个为空
return false;
return (t1->val==t2->val)&&ismirror(t1->left,t2->right)&&ismirror(t1->right,t2->left);
}
};