遇到链表问题老是出错,花了好多时间,要炸了!麻烦各位伙伴帮忙下
单向链表的结点类型定义如下:struct node{
char ch;
struct node *next;
};
编写函数,对单向链表L实现就地逆置,即将所有结点
的指针反向,原链头当作链尾,原链尾当作链头,并返
回逆置后链表的头指针。
struct node *inverse(struct node *L)
{ int n;
struct node **p1,*p2,head;
p2=L;
for(n=0;p2!=null;n++)
*(p1+n)=p2; //通过二维结构体指针数组存放各个节点的地址
struct node *head;
head=(struct node *)malloc(sizeof(struct node)); //这里开始将从最后面的结点开始将链表转置;
head=*(p1+n-1);
p2=head;
for(;n>0;n--)
{
p2->next=*(p1+n-1);
p2=p2->next;
}
return head;
}
接连遇到链表出问题,心累,恳求大神们能帮我详细分析下出问题的原因(指出错误,最好不要从新写,从我代码找出,因为我从别人代码看没问题,自己却老是出错),麻烦大家了!!!