请实现一个函数,用来判断一棵二叉树是不是对称的。
如果一个二叉树的镜像和此二叉树相同,定义其为对称的。
代码实现如下:
bool isSymmetrical(TreeNode* pRoot)
{
if (pRoot == NULL)
return false;
return _isSymmetrical(pRoot->left, pRoot->right);
}
bool _isSymmetrical(TreeNode* pleft, TreeNode* pright)
{
if (pleft == NULL && pright == NULL)
return true;
if (pleft == NULL || pright == NULL)
return false;
if (pleft->val != pright->val)
return false;
return _isSymmetrical(pleft->left, pright->right) &&
_isSymmetrical(pright->left, pleft->right);
}