给定一个二叉树,检查它是否是镜像对称的。
利用之前相同二叉树的代码,递归的参数分别为root对应左右节点的大小。
bool issametree(TreeNode* p, TreeNode* q)
{
if((p == NULL) && (q == NULL))/*p,q同时为空,意味着以前的遍历未出现不相同节点*/
{
return true;
}
else if (((p == NULL) && (q != NULL)) || ((p != NULL) && (q == NULL)))/*p,q不同时为空,意味着节点数不一致*/
{
return false;
}
else
{
if(p->val != q->val)/*x相同位置节点,数据不一致*/
{
return false;
}
else
{
return issametree(p->left,q->right) && issametree(p->right,q->left);
}
}
}
bool Solution::isSymmetric(TreeNode* root)
{
return issametree(root, root);
}