求一个用单链表实现逆置的思路
题目:试用单链表作为存储结构,实现将线性表(a0,a1,…an-1)就地逆置的操作“就地”是指辅助空间应为O(1)。 大佬们,描述一下思路就好了,我一点头绪都没有 假设结构体为s,下一个指针叫next。我写个伪代码,要用3个临时指针,从头改就行,假设pre指向链表开头。
struct s* p1,*p2*p3;
p1=pre->next;
pre->next=NULL;
p3=pre;
p2=p1;
while(p2->next!=NULL)
{
p1=p2->next;
p2->next=p3;
p3=p2
p2=p1;
}
//p2指向结尾
p2->next=p3;
pre=p2;//此时pre指向链表开头
谢谢!
页:
[1]