Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

For example, this binary tree ​​[1,2,2,3,4,4,3]​​ is symmetric:

 

But the following ​​[1,2,2,null,3,null,3]​​ is not:

 

Note:
Bonus points if you could solve it both recursively and iteratively.

 

题解:递归比较二者的子树

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool ju(struct TreeNode* a,struct TreeNode* b){
if(a->val == b->val)
{
if((a->left==NULL&&b->right==NULL)||(a->left!=NULL&&b->right!=NULL&&ju(a->left,b->right)))
{
if((b->left==NULL&&a->right==NULL)||(b->left!=NULL&&a->right!=NULL&&ju(b->left,a->right)))
return true;
else
return false;
}
else
return false;

}
return false;
}
bool isSymmetric(struct TreeNode* root) {

if(root==NULL) return true;
if((root->left==NULL&&root->right==NULL)||(root->left!=NULL&&root->right!=NULL&&ju(root->left,root->right)))
return true;
else
return false;

}