完全二叉树的判断问题

为什么我用这段代码判断是否为完全二叉树的时候,总是会在输入二叉树的时候就崩溃啊?
求解答,求解答,求解答orz。

#include 

using namespace std;

struct Tree
{
    int data;
    Tree *left,*right;
};
Tree *seek(int a,Tree *t){

  Tree *tmp;
  if (t==NULL) return NULL;
  if(t->data==a) return t;
  if(tmp=seek(a,t->left)) return tmp;
  else return seek(a,t->right);

}
bool isComplete(Tree *p)
{   bool i=1;
   if(p==NULL)  {return i;}
   if(p->left==NULL&&p->right!=NULL){i=0;return i;}
   isComplete(p->left);
   isComplete(p->right);
    return i;
}
void clear(Tree *e,int n)
{
    Tree *p,*q;
    q=e;
  for (int i=1;iint main()
{
 int n;
 cin>>n;
 Tree *head=new Tree;
 head->data=0;
 for (int i=1;iint j;
 cin>>j;
     Tree *tmp=new Tree;
     tmp->data=i;
     if(seek(j,head)->left==NULL) seek(j,head)->left=tmp;
     else seek(j,head)->right=tmp;

 }
 if(isComplete(head)) cout<<"true"<else cout << "false" <return 0;
}


你初始化tree的代码在哪呢
没初始化tree就直接执行查找,那不返回null吗,然后你又没有判断返回的是不是null就往里面存东西
tmp=seek(a,t->left)这里判断都写成赋值了
你这代码问题多了
二叉树查找的代码也不对呀,你要根据被查找的数比当前节点大或者小去查对应的分支,你判断左边不相等就往右边找那能对吗