题意描述:给你一个二叉树的根节点 root , 检查它是否轴对称。
- 左节点为空,右节点不为空,不对称,return false
- 左不为空,右为空,不对称 return false
- 左右都为空,对称,返回true
C++代码如下:
class Solution {
public:
bool compare(TreeNode* left, 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;
}
bool outside = compare(left->left, right->right);
bool inside = compare(left->right, right->left);
bool isSame = inside && outside;
return isSame;
}
bool isSymmetric(TreeNode* root) {
if(root == NULL){
return true;
}
return compare(root->left, root->right);
}
};