试题链接:添加链接描述
class Solution {
public:
bool isSymmetrical(TreeNode* pRoot)
{
if (pRoot == nullptr)
return true;
vector<TreeNode*> lvi;
vector<TreeNode*> rvi;
lvi.push_back(pRoot);
rvi.push_back(pRoot);
int i=0;
while (i<lvi.size())
{
if (lvi[i] != nullptr)
{
lvi.push_back(lvi[i]->left);
lvi.push_back(lvi[i]->right);
}
i++;
}
int j=0;
while (j<rvi.size())
{
if (rvi[j] != nullptr)
{
rvi.push_back(rvi[j]->right);
rvi.push_back(rvi[j]->left);
}
j++;
}
int len=lvi.size();
for (int k=0;k<len;k++)
{
if (lvi[k] == nullptr && rvi[k] != nullptr)
return false;
else if (lvi[k] != nullptr && rvi[k] == nullptr)
return false;
else if (lvi[k] == nullptr && rvi[k] == nullptr)
continue;
else if (lvi[k]->val != rvi[k]->val)
return false;
}
return true;
}
};