递归判断左子树的左孩子是否等于右子树的右孩子,左子树的右孩子是否等于右子树的左孩子。
注意边界条件
class Solution {
public:
bool isSymmetric(TreeNode* root) {
if(root == nullptr) return true;
return dfs(root->left,root->right);
}
bool dfs(TreeNode * r1,TreeNode * r2) {
if(!r1 && !r2)return true;
if(!r1 || !r2) return false;
if(r1->val != r2->val)return false;
int flag1 = dfs(r1->left,r2->right);
int flag2 = dfs(r1->right,r2->left);
return flag1 && flag2;
}
};