判断一颗二叉树是否是对称二叉树
对称二叉树意识就是以根节点为对称轴,对称轴两边的节点完全相同,例如:
可以看出左边的是对称二叉树,右边的不是对称二叉树(其中有一个节点值不同),代码:
bool IssymmetryBintree(BinTreeNode<T> *left, BinTreeNode<T> *right)
{//对称二叉树
if (left == NULL && right == NULL)
{//两者均为NULL说明遍历到叶子节点了
return true;
}
if (left == NULL || right ==NULL)
{// 其中一个为NULL,不对称
return false;
}
if (left && right && left->_value != right->_value)
{//值不相等,不对称
return false;
}
IssymmetryBintree(left->left, right->right);
IssymmetryBintree(left->right, right->left);
}