101. 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
进阶:
你可以运用递归和迭代两种方法解决这个问题吗?
题解:
一个简单的递归运用在结构体指针上的问题,注意指向即可。
代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool cmp(struct TreeNode *i,struct TreeNode *j)
{
if(i==NULL&&j==NULL)
{
return 1;
}
else if(i==NULL||j==NULL)
{
return 0;
}
if(i->val!=j->val)
{
return 0;
}
return cmp(i->left,j->right)&&cmp(i->right,j->left);
}
bool isSymmetric(struct TreeNode* root){
if(root==NULL)
{
return 0;
}
return cmp(root->left,root->right);
}