關(guān)鍵詞:
知道如何判斷兩顆樹是不是對(duì)稱的
自己的解法:
//判斷二叉樹是不是對(duì)稱的
bool IsSymmetical(BinaryTreeNode* pRoot)
{
//判斷二叉樹是不是對(duì)稱的
//通過判斷兩棵樹是不是對(duì)稱的
//通過判斷樹1的左子樹和樹2的右子樹是不是對(duì)稱的以及通過判斷樹1的右子樹和樹2的左子樹是不是對(duì)稱的
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;
}
}