对称二叉树
代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
typedef struct TreeNode TreeNode;
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {//给了两个树的根节点
//判断是否为空树
if(p == NULL && q == NULL){
return true;
}
//其一为空
if(p == NULL || q == NULL){
return false;
}
//说明都不为空
if(p->val != q->val){
return false;
}
//说明结构相同值相同
return isSameTree(p->left,q->right) && isSameTree(p->right,q->left);
}
bool isSymmetric(struct TreeNode* root) {
return isSameTree(root->left,root->right);
}