根据题中给出的顺序,可以看出是正序遍历所得到的值,
则我们可以正序遍历得到另一个队值。
在正序遍历时判断其子是否为空,如果为空则添加入队列,如果不为空则继续向下查找。
最后对两个队列进行对比,如果相同则返回True,否则返回Flase。
当然可以使用数组,但是数组会有一些麻烦。。所以选择简单的写法/
void leaflist(vector<int> &leafArry,TreeNode*root)
{
if(root!=NULL)
{
if(root->right==NULL&&root->left==NULL)
leafArry.push_back(root->val);
leaflist(leafArry,root->right);
leaflist(leafArry,root->left);
}
}
// 这是以前序遍历来选择,子节点
if(leafArry1.size() == leafArry2.size())
{
for(int i=0;i<leafArry1.size();i++)
if(leafArry1[i]!=leafArry2[i])
return false;
}
else
return false;
return true;
// 这是判断是否相同