对称二叉树问题

题目:给定一个二叉树,判定是否是对称二叉树。
解题:若这个棵二叉树的先遍历左结点再遍历有结点和先遍历有结点后遍历左结点,访问到的结点值相同(包括null结点),则表明这个树为对称二叉树。
代码如下:
#include “iostream”
using namespace std;
bool isSymmetrical(TreeNode*pRoot)
{

return isSymmetrical(pRoot, pRoot);

}

bool isSymmetrical(TreeNode*pRoot1, TreeNode*pRoot2)
{

if (pRoot1==NULL&&pRoot2==NULL)
{
    return true;
}
if (pRoot1==NULL||pRoot2==NULL)
{
    return false;
}
if (pRoot1->value!=pRoot2->value)
{
    return false;
}
return isSymmetrical(pRoot1->left, pRoot2->right) && isSymmetrical(pRoot1->right, pRoot2->left);

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章