关键词:
知道如何判断两颗树是不是对称的
自己的解法:
//判断二叉树是不是对称的
bool IsSymmetical(BinaryTreeNode* pRoot)
{
//判断二叉树是不是对称的
//通过判断两棵树是不是对称的
//通过判断树1的左子树和树2的右子树是不是对称的以及通过判断树1的右子树和树2的左子树是不是对称的
if (pRoot == nullptr)
return true;
return IsSymmetical(pRoot->m_pLeft,pRoot->m_pRight);
}
bool IsSymmetical(BinaryTreeNode* pRoot1, BinaryTreeNode* pRoot2)
{
if (pRoot1 == nullptr && pRoot2 == nullptr)
return true;
else if (pRoot1 != nullptr && pRoot2 == nullptr)
return false;
else if (pRoot1 == nullptr && pRoot2 != nullptr)
return false;
else if (pRoot1->m_nKey == pRoot2->m_nKey)
{
bool bLeft = IsSymmetical(pRoot1->m_pLeft,pRoot2->m_pRight);
bool bRight = IsSymmetical(pRoot1->m_pRight,pRoot2->m_pLeft);
if (bLeft&&bRight)
return true;
else
return false;
}
else
{
return false;
}
}