101-对称二叉树
leetcode题解——对称二叉树
题目如下
给定一个二叉树,检查它是否是镜像对称的。
解题思路
考察递归
- 对于一棵树,可以从外围到内围一层层判断是否镜像
- 外围对应的是左边结点的左孩子和右边结点的右孩子
- 内围对应的是左边节点的右孩子和右边结点的左孩子
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool compare(struct TreeNode*left, struct TreeNode* right){
if(left==NULL && right!=NULL){return false;}
else if(left!=NULL && right==NULL){return false;}
else if(left==NULL && right==NULL){return true;}
else if(left->val != right->val){return false;}
return compare(left->left, right->right)&&compare(left->right, right->left);
}
bool isSymmetric(struct TreeNode* root){
if(root==NULL){
return true;
}
return compare(root->left, root->right);
}

浙公网安备 33010602011771号