请设计一个函数判断一棵二叉树是否 轴对称 。

示例 1:

**输入:**root = [6,7,7,8,9,9,8]
**输出:**true
**解释:**从图中可看出树是轴对称的。

示例 2:

**输入:**root = [1,2,2,null,3,null,3]
**输出:**false
**解释:**从图中可看出最后一层的节点不对称。

提示:

0 <= 节点个数 <= 1000

空树返回true

从根节点依次开始比较即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
bool checkSymmetricTree(TreeNode *root) {
if (root == nullptr)
return true;
return check(root->left, root->right);
}
bool check(TreeNode *left, TreeNode *right) {
if (left == nullptr && right == nullptr)
return true;
if (right == nullptr || left == nullptr)
return false;
if (right->val != left->val)
return false;
return check(left->left, right->right) &&
check(left->right, right->left);
}
};