Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
1 / \ 2 2 / \ / \ 3 4 4 3
But the following is not:
1 / \ 2 2 \ \ 3 3
Difficulty:Easy
bool valid(TreeNode* l, TreeNode* r){
if(l==NULL&&r==NULL)
return true;
if((l==NULL&&r!=NULL)||(r==NULL&&l!=NULL)||r->val!=l->val)
return false;
if(valid(l->left,r->right)&&valid(l->right,r->left))
return true;
}
bool isSymmetric(TreeNode* root) {
if(root==NULL)
return true;
return(valid(root->left,root->right));
}