实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的
思路:因为二叉树是对称的,所以每个节点有一个镜像节点,如:节点a和b是对称的,则满足:
1.a的值等于b的值
2.a的左子节点和b的右子节点是对称的、a的右子节点和b的左子节点是对称的
bool helper(TreeNode* a,TreeNode *b){
if(!a&&!b)return true;
if(!a||!b)return false;
if(a->val!=b->val)return false;
return helper(a->left,b->right)&&helper(a->right,b->left);
}
bool isSymmetric(TreeNode* root) {
return helper(root,root);
}