解题思路
check函数中,若x、y皆为空,则return true,若x、y其中之一为空,则return false,否则检测xy的值是否相等以及x的左和y的右、x的右和y的左是否对称。整个过程用递归实现。
代码
class Solution {
public:
bool check(TreeNode *x,TreeNode *y){
if(x == NULL && y == NULL)
return true;
if(x == NULL || y == NULL)
return false;
return x->val == y->val && check(x->left,y->right) && check(x->right,y->left);
}
bool isSymmetric(TreeNode *root) {
return check(root,root);
}
};