题目:
分析:
题目中有说镜像和对称是有关系的。
本题,如果从镜像考虑的话,则是从根节点开始比较。
如果直接从对称考虑的话,是从左右子树开始比较的。左右子树是镜像的。
代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool f(TreeNode* t1,TreeNode* t2)
{
if(t1==NULL || t2==NULL)
{
if(t1==NULL && t2==NULL) return 1;
return 0;
}
if(t1->val!=t2->val) return 0;
return f(t1->right,t2->left) &&f(t1->left,t2->right);
}
bool isSymmetric(TreeNode* root) {
if(!root ) return 1;
return f(root->left,root->right);
}
};