思路分析
- 每棵树的左子树和右子树相同
递归条件
- 同时为空,则相同,return true;
- 一个为空 return false;
- 此时比较结点值是否相同 && 根节点的左子树 根节点的右子树 && 根节点的右子树 根节点的左子树
bool check(struct TreeNode* p,struct TreeNode* q){
if(!p && !q)
return true;
else if(!p || !q)
return false;
else
return (p->val == q->val) && check(p->left,q->right) && check(p->right,q->left);
}
bool isSymmetric(struct TreeNode* root){
return check(root,root);
}