struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x): val(x), left(nullptr), right(nullptr){
}
};
class Solution {
public:
bool isSymmetrical(TreeNode* root) {
if (!root)
return true;
bool res = helper(root->left, root->right);
return res;
}
bool helper(TreeNode* leftNode, TreeNode* rightNode) {
if (!leftNode && !rightNode)
return true;
if ((leftNode && !rightNode) || (!leftNode && rightNode))
return false;
if (leftNode->val != rightNode->val)
return false;
return helper(leftNode->left, rightNode->right) && helper(leftNode->right, rightNode->left);
}
};
近期评论