题目链接:101. 对称二叉树 - 力扣(LeetCode)
递归解决,如果都空那么相等,否则有一个为空那么不相等,剩下就是都不为空,判断元素是否相等,接着递归判断左边的左子树是否等于右边的右子树,左边的右子树是否等于右边的左子树
class Solution {
public:
bool isSymmetric(TreeNode *root) {
return isSame(root, root);
}
bool isSame(TreeNode *p, TreeNode *q) {
if (!p && !q) // 都空相等
return true; // 不是都空,其中一个空不相等
if (!q || !p)
return false;
return p->val == q->val && isSame(p->left, q->right) && isSame(p->right, q->left);
}
};