关于链表的一个c语言问题

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

struct?结节

{

int?数据;

struct?节点?*下一个;

};

int?主()

{

int?n,?我,?j,?t;

int?旗帜?=?0,?k?=?0,?x;

struct?节点?*头,?*添加,?*p,?*q,?*r,* t 1;

头?=?(struct?node*)malloc(sizeof(struct?节点));

scanf("%d ",& ampn);

head->;下一个?=?NULL

t1?=?头;

为了什么?(我?=?1;?我?& lt=?n;?i++)

{

如果?(我?==?1)

{

scanf("%d ",& amphead->;数据);

}

其他

{

补充?=?(struct?node*)malloc(sizeof(struct?节点));

scanf("%d ",& amp添加-& gt;数据);

添加-& gt;下一个?=?NULL

t 1->;下一个?=?添加;

t1?=?添加;

}

}

printf("%d\n ",n);

p?=?头;

q?=?head->;接下来;

什么时候?(问)

{

r?=?q->;接下来;

q->;下一个?=?p;

p?=?q;

q?=?r;

}

head->;下一个?=?NULL

头?=?p;

q?=?头;

什么时候?(q!=空)

{

printf("%d?",?q->;数据);

q?=?q->;接下来;

}

printf(" \ n ");

p?=?头;

什么时候?(p)

{

r?=?p;

q?=?p->;接下来;

什么时候?(问)

{

如果?(问->;数据?==?p->;数据)

{

n-;

r-& gt;下一个?=?q->;接下来;

q?=?q->;接下来;

}

其他

{

q?=?q->;接下来;

r?=?r-& gt;接下来;

}

}

p?=?p->;接下来;

}

printf("%d\n ",n);

q?=?头;

什么时候?(q?!=?空)

{

printf("%d?",?q->;数据);

q?=?q->;接下来;

}

printf("\n ",?n);

回归?0;

}