问题描述
- 链表转置问题,求大神看看哪错了
-
linklist listtranspose(linklist L)
{
linklist r,t,s;
while(!L||!(L->next))
return L;
r=L;
s=r->next;
t=s->next;
L->next=NULL;
while(t!=NULL)
{
s->next=r;
r=s;
s=t;
t=t->next;
}
s->next=r;
return s;
}
int main(void)
{
int n,x,y;
linklist L;
printf("输入链表长度:");
scanf("%d",&n);
printf("输入链表:n");
L=createlist(n);
listtranspose(L);
printflist(L);
return 0;
}
解决方案
看不到完整代码,楼主先试试下面的,不行的话贴上完整代码
或者自己单步调试
PS:单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
linklist listtranspose(linklist L)
{
linklist r,t,s;
while(!L||!(L->next))
return L;
r=NULL;
t=L->next;
while(t!=NULL)
{
s = t->next;
t->next = r;
r=t;//移动指针
t=s;
}
L->next=r;
return L;
}
时间: 2024-12-11 15:20:46