我弄的C++类链表可以创建但是输出不了,程序没有报错,但只能调用setnum函数但是不能调用display函数,如图,请问是哪里出了问题?

图片说明
#include
using namespace std;
class T
{
private:
int number;
public:
T *next;
void display();
void setnum();

};

void T::setnum()
{
cout<<"输入数字:";
cin>>number;
next=NULL;
}

void T::display()
{
cout<<number<<endl;
}

class T *create(T *head)
{
int x;
cout<<"请输入您要在开始创建类的个数:";
cin>>x;
T *p1,*p2;
p1=p2=new T; //动态定义类对象指针
p1->setnum();
if(x==1)
head=p1;
else
{

    for(int i=1;i<x;i++)
    {
        if(head=NULL)
            head=p1;    
        p2=p1; 
        p1=new T;
        p1->setnum();
        p2->next=p1;
    }
}
return head;

}

class T show(class T *head)
{
T *p1,*p2;
p1=head;
if(head->next==NULL)
{
head->display();
}
else
{
for(int i=1;i>0;i++)
{

p1->display();
p2=p1->next;
p1=p2;
if(p1->next=NULL) break;
}
}
}

int main()
{
T *head;
head=NULL;
head=create(head);
show(head);
}

写了不少代码,看着挺完整,仔细一看,根本就是一窍不通,这代码基本没有修改的价值,重写去吧。